繁体   English   中英

Haskell基本功能定义

[英]Haskell basic function definition

我正在学习haskell,但我不太了解功能定义,例如:

module TestModule where

iter :: Int -> (a -> a) -> (a -> a)

iter n f 
  | n>0         = f . iter (n-1) f
  | otherwise   = id

iter_2 n f = foldr (.) id (replicate n f)

我应该提供什么功能? 我已经通过控制台加载了此功能,但并不太了解如何使用它。

我的问题是如何通过控制台使用此功能。 像“ iter 5 ???”

将函数的类型读取为

iter :: Int -> (a -> a) -> a -> a
        ^^^    ^^^^^^^^    ^    ^
        arg      arg      arg  result

意思是如果您提供一个Int ,一个(a->a)函数和一个a ,它将给您另一个a 这里a代表任何类型。 例如

iter 4 (+1) 0

将为4 ,即对0执行四次(+1)

您需要为其提供一个功能 ,更具体地说,是一个内部功能 (将任何类型映射到其自身)。 例如,

*Main> iter 3 sqrt 256
2.0

当然,这也可以是自定义函数,例如

*Main> let f x = x+2
*Main> iter 3 f 7
13

甚至是调用中定义的匿名权利:

*Main> iter 3 (\str -> "("++str++")") "..."
"(((...)))"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM