让绑定如何工作

Posted

技术标签:

【中文标题】让绑定如何工作【英文标题】:How does let binding work 【发布时间】:2019-01-12 18:25:06 【问题描述】:

我是 Haskell 的新手,在理解以下示例中的 let 绑定如何工作时遇到了麻烦:

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

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

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

【问题讨论】:

prefix n 是一个以n 为参数并返回列表的函数。 我不确定你在问什么,但let 创建了一个名为prefix 的本地函数,然后它用于映射range。你可以说prefix 是一个函数,因为它说它需要一个参数n 【参考方案1】:

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

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

【讨论】:

以上是关于让绑定如何工作的主要内容,如果未能解决你的问题,请参考以下文章

如何让 TypeScript 以生成工作 Node.JS 代码的方式加载 PDF.js NPM 模块和 @types 绑定?

Windows 10 Cygwin 中的 OpenMPI java 绑定

我正在尝试在访问前端实现后期绑定,但无法让 DAO 参考工作

为按钮创建单向绑定

将字典绑定到中继器

如何使用 bindless 指定 UBO 绑定?