打印九九乘法表
初学 haskell 的关键是:掌握函数式思考问题
的技艺
haskell 是纯函数式的语言,它的函数基本与数学上的函数等价:
- 给同样的输入,总是得到相同的输出。
- 函数保证没有副作用,除了计算出结果,啥都不做
- 函数的求值次序无法控制
- 函数求值是惰性的,只要还没被用到,绝不去求值
要改变现实世界(比如屏幕上的像素点),总要有点副作用才行。haskell 的理念是:把纯函数与有副作用的函数分开。尽可能压缩有副作用的函数的生存空间。
九九表的问题中,有副作用的函数功能是:输出一个串(含有很多换行符的串)。但,如何制造出这个串,就是一个纯函数问题。
下面是 haskell 实现:
----- 输出乘法口诀表
table = [f x y | x <- [1..9