我最近注意到我经常编写函数来迭代另一个函数 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/