让绑定如何工作
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 绑定