这种只通过函数组合得到的,不涉及实际参数的函数风格被称为pointfree style
P.S.注意,巨长的函数链会降低可读性,不鼓励这样做,应该通过let/where等声明把函数链拆开并赋予语义
五....表达式、where子句等场景,例如:
[ x + y | (x, y) <- [(1, 2), (3, 4)] ]
sumOneTwoThree = let (a, b, c) = (1, 2, 3)...c) = (1, 2, 3) in a + b + c
let-in的作用与where类似,都用来定义局部变量/函数,区别如下:
形式上:let xxx in...与...where xxx的声明位置区别...,let把定义放在前面了
语法上:let-in是表达式,而where是语法结构,前者可以随便放
作用域上:let-in的作用域限制更严格,在let部分定义的变量/函数只对in部分可见
注意,同样要求多行声明要严格对齐...、let、List Comprehension等特定场景)
六.数据结构
List
Haskell中的List是单一类型数组,例如:
emptyArr = []
numbers = [1, 2, 3,