几天后,我试图围绕Haskell中的函数式编程范例.我通过阅读教程和观看截屏视频来完成这项工作,但似乎没有什么能够坚持下去.现在,在学习各种命令式/ OO语言(如C,Java,PHP)时,练习对我来说是个好方法.但由于我不知道Haskell能够做什么,并且因为有许多新概念可供使用,我还不知道从哪里开始.
那么,你是如何学习Haskell的?是什么让你真正"打破僵局"?还有开始练习的好主意吗?
iterate :: (a -> a) -> a -> [a]
Run Code Online (Sandbox Code Playgroud)
(你可能知道)iterate
是一个函数,它接受一个函数和起始值.然后它将函数应用于起始值,然后将相同的函数应用于最后的结果,依此类推.
Prelude> take 5 $ iterate (^2) 2
[2,4,16,256,65536]
Prelude>
Run Code Online (Sandbox Code Playgroud)
结果是一个无限的列表.(这就是我使用的原因take
).我的问题是如何iterate'
在Haskell中实现自己的功能,只使用基础知识((:)
(++)
lambdas,模式mataching,警卫等)?
(Haskell初学者在这里)