参考教材:Learn You a Haskell for Great Good (http://learnyouahaskell.com/)
操作环境:Ubuntu下Linux64位虚拟机
python入门编程, 之后用c++学习数据结构,Haskell萌新。
由于对Haskell中一些词语的中文翻译并不了解,接下来的内容中重点名词将有英文和我理解的中文。
Chapter5主要内容
调制函数(curried function)
在前面学习的函数里,我们理解的函数通常接受一个或多个参数(parameter),并返回对应的结果,而这个结果也通常以参数的形式表示。这里我们讨论调制函数。调制函数总是仅仅接受一个参数,不同的是它返回值可以是函数,返回的函数可以再接受下一个参数,以此类推。
例子:max
我们在前面的学习过程里用到的max获取两个可以比较优先级的同类参量,返回其中的较大值。从调制函数的角度思考这个函数,我们会有另外的发现。
max函数通过:t max 我们可以看到max函数的声明。由于->符号是右结合的,我们又可以把它写成a -> (a-> a)的形式。也就是说,max函数获取一个参数,返回声明为a->a类型的函数。如果我们输入max 4,我们获取到的正是这个函数。然而,由于Haskell并不了解a->a类型的函数要怎么输出,这一输入在命令行状态下会报错。
网友评论