对Discrete Mathematics Using a Computer的第一章Introduction to Haskell进行总结。环境Windows
函数毫无疑问是函数式语言的核心。
在Haskell中(无特殊指明,以下皆是指在Haskell下),一个表达式用函数完成计算被称为a function application,函数后加空格然后跟随参数(arguments),如有多个参数,也以空格作为分隔。
函数的返回值即函数的类型,如一个函数的参数是类型a,返回值是类型b,写作a → b(在Haskell中用 -> 表示),读作a arrow b。
操作符其实也是函数,它有2个参数,写在2个参数中间,其实也可以像正常函数一样写在前面,但需要加( )如:
同样的,也可以像对待操作符一样将函数放在2个参数中间,但要加反引号( single-back-quote, ` ),如:
将函数定义在Haskell脚本文件(.hs)中,载入(在ghci中 :load)后,即可使用。
函数的声明:
function_name :: argType1 -> argType2 -> ... ->argTypen ->resultType
函数体:
function_name arg1 arg2 ... argn = expression that can use the arguments
模式匹配pattern matching
在定义函数时,为应对不同情况,可以有多个函数体,如:
f :: Integer -> String f 1 = "one" f 2 = "two" f 3 = "three"
is_three :: Int->Bool
is_three 3 = False
is_three x = True --这里的x代表任何Int值,但由于是第二条执行到这一条就代表了x不是3
在得到参数执行时,会从第一条开始比较是否符合,当遇到符合的才会执行,执行后即该函数执行完成,如果没有符合的会报错,如: