我正在学习haskell而我并不理解函数定义,例如:
{{1}}
我想这个功能是什么?我已经通过控制台加载了这个功能,并且真的不懂如何使用它。
我的问题如何通过控制台使用此功能。喜欢" iter 5 ???"
答案 0 :(得分:4)
将函数类型读为
iter :: Int -> (a -> a) -> a -> a
^^^ ^^^^^^^^ ^ ^
arg arg arg result
表示如果您提供Int
,(a->a)
功能和a
,则会返回另一个a
。这里a
代表任何类型。例如
iter 4 (+1) 0
将为4
,即(+1)
四次0
。{/ p>
答案 1 :(得分:3)
你需要给它一个函数,更具体地说,一个 endofunction (将任何类型映射到它自己)。例如,
*Main> iter 3 sqrt 256
2.0
当然,这也可以是自定义功能,如
*Main> let f x = x+2
*Main> iter 3 f 7
13
甚至是在调用中定义的匿名文件:
*Main> iter 3 (\str -> "("++str++")") "..."
"(((...)))"