绑定如何工作

时间:2018-08-05 17:30:37

标签: function haskell functional-programming let

我是Haskell的新手,在以下示例中,我难以理解let绑定的工作原理:

prefixes :: [a] -> [[a]] 

prefixes xs =
    let prefix n = take n xs
    in map prefix (range (length xs))

'take'函数返回一个列表,那么如何将它绑定到2个变量(前缀n)?还是我完全错过了重点...

1 个答案:

答案 0 :(得分:2)

您可以将let视为使用匿名函数的语法糖。

let name = value in stuff等效于(\name -> stuff) value。将以in子句中的表达式为主体的匿名函数应用于绑定到let子句中的名称的表达式。