Programming in Haskell是一本入门Haskell的好书,介绍页面以及配套的slides, vedios, codes都在这里。
给出double (double 2)
的另外一种可能解释。
书上给的例子是应用序和正则序(从左向右),可以将正则序(从右向左)当作答案。
1 | double (double 2) |
解释sum [x]
的求值过程。
sum的定义:
1 | sum [] = 0 |
sum [x] 求值过程:
1 | sum [x] |
定义product
。
仿照sum的定义,将product定义如下:
1 | product [] = 1 |
product [2, 3, 4]求值过程:
1 | product [2,3,4] |
将qsort
改成输出倒序的。
将课本中的例子larger和smaller交换即可。
1 | -- qsort.hs |
将qsort
定义中的<=
换成<
会如何。
若将<=
换成<
,则与x
相等的元素将会丢失。
1 | *Main> qsort [2,2,3,3,1] |
1 | this |