我是Haskell的新手,在以下示例中,我难以理解let绑定的工作原理:
prefixes :: [a] -> [[a]]
prefixes xs =
let prefix n = take n xs
in map prefix (range (length xs))
'take'函数返回一个列表,那么如何将它绑定到2个变量(前缀n)?还是我完全错过了重点...
答案 0 :(得分:2)
您可以将let
视为使用匿名函数的语法糖。
let name = value in stuff
等效于(\name -> stuff) value
。将以in
子句中的表达式为主体的匿名函数应用于绑定到let
子句中的名称的表达式。