首页 > 解决方案 > 让绑定如何工作

问题描述

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

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

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

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

标签: functionhaskellfunctional-programminglet

解决方案


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

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


推荐阅读