来自 this Youtube video :
> let loeb fs = xs where xs = fmap ($ xs) fs
> loeb [length, (!! 0)]
[2,2]
xs
这里是递归定义的,而 loeb 如何终止超出了我的范围。
最佳答案
尝试一下:
loeb [length, (!! 0)]
= xs where xs = fmap ($ xs) [length, (!! 0)]
= xs where xs = [length xs, xs !! 0]
所以当然
length xs
只是 2,所以 xs
的第一个元素( length xs
) 也是 2。记住:
length xs
不需要评估列表的项目:length [undefined, undefined] = 2
关于haskell - 在这个 haskell 示例中 loeb 如何终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29250967/