haskell - Haskell 中是否有定点运算符?

标签 haskell fixed-point-iteration

我最近注意到我经常编写函数来迭代另一个函数 f直到它到达一个固定点(例如 f x == x )

我认为这是一个非常笼统的概念,所以我认为可能有一个内置的。

所以我想知道是否有一个内置的,或者更一般的东西?

所以我基本上是在寻找这个:

fixedpoint f x= head . dropWhile(\y->y /= f y) $ iterate f x

我只是在谷歌搜索时遇到了麻烦,因为我只找到了对 fix 的引用。每当我的搜索词包含 fixed point 时起作用或类似的东西。

最佳答案

自己写就行了。直接版本将比使用 dropWhile 快.

hammer :: Eq a => (a -> a) -> a -> a
hammer f x
  | x' == x = x'
  | otherwise = hammer f x'
  where x' = f x

关于haskell - Haskell 中是否有定点运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955348/

相关文章:

Haskell:如果遍历参数,RWS 上的单子(monad)固定点将循环

scheme - 什么是定点?

haskell - 导入语法 `import "cryptonite"Crypto.Hash` 中带引号的字符串是什么意思?

performance - 如何在 Haskell 中有效地字节交换二进制数据

haskell - 如何在 Haskell 中正确调用 GI.GtkscrolledWindowNew?

haskell - 部分应用函数和柯里化(Currying),如何制作更好的代码而不是大量的 map ?

networking - Haskell:如何使用 forkIO 使多个客户端连接到服务器?

python - 不动点迭代算法