问题标签 [let]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3033 浏览

types - Ocaml中“type ...and”和“let ...and”之间的范围不一致

我想知道为什么在 OCaml 中,let ... and没有与type ... and.

以下是可以的,与以下内容t2在同一范围内t1

以下是错误的,v2不在范围内:

甚至let rec不起作用:

type... and为什么和之间的范围界定不一致 let...and

0 投票
1 回答
134 浏览

f# - 是否可以同时声明可变和不可变的值/绑定?

例如我想声明

常量绑定 len 和可变 i,有可能吗?

补充: 然后我将使用参考

0 投票
2 回答
2817 浏览

ocaml - “let () =”在 Ocaml 中是什么意思?

有类似的代码

在一些 OCaml 代码中。

这是什么意思?“()”有特殊含义吗?还是和这个意思一样

0 投票
1 回答
200 浏览

lisp - Lisp 的 let* 的 Ocaml 等价物?

在可能的情况下,我宁愿使用而let ... and ... and ... in不是嵌套let的 's,但正常的 let 语法不允许这种用于相互依赖的表达式。

不允许:

OCaml 是否具有与 Lisp's 等效的功能let*,它确实允许这样做?

0 投票
3 回答
1385 浏览

haskell - Haskell let-expression 中出现奇怪的类型错误——问题是什么?

今天我在 Haskell 中遇到了一件令人沮丧的事情。

这是发生的事情:

  1. 我在 ghci 中写了一个函数并给它一个类型签名
  2. ghci 抱怨类型
  3. 我删除了类型签名
  4. ghci 接受了这个功能
  5. 我检查了推断的类型
  6. 推断的类型与我尝试给出的类型完全相同
  7. 我很苦恼
  8. 我发现我可以在任何 let-expression 中重现该问题
  9. 咬牙切齿; 决定咨询 SO 的专家

尝试使用类型签名定义函数:

定义了没有类型签名的函数,检查了推断的类型:

很好地使用了这个功能——它工作正常:


我对发生了什么的最佳猜测:
当有一个 do-block 时,类型注释不知何故不适用于 let-expressions。

对于奖励积分:
标准 Haskell 发行版中是否有这样做的功能?我很惊讶它filterM做了一些非常不同的事情。

0 投票
1 回答
278 浏览

recursion - 在递归函数内部定义函数与在 F# 外部定义函数的性能副作用是什么

如果您有一个依赖于其他函数的递归函数,那么实现它的首选方法是什么?

1) 递归函数外

2) 递归函数内部

3)将两者都封装在第三个函数中

4)更好的东西?

0 投票
2 回答
502 浏览

scheme - 混淆 Let 和 Let* 的方案

使用上面的代码,为什么答案是 35,而不是 70?在第二个let中,x 是 7,所以 z 应该是 7 + 3 = 10,然后结果应该是 7 * 10 = 70。我知道有另一个是 let* 我在这 2 之间很困惑。样本是从谷歌抓取的. 我已经谷歌了,但就是无法得到它。

0 投票
2 回答
249 浏览

scheme - Scheme let 语法错误

我有上面的错误,我不知道哪个部分出错了

0 投票
2 回答
11053 浏览

clojure - Clojure:让作用域和函数返回值

我在弄清楚如何使用“让”表单时遇到了一些麻烦。在下面的示例中,我想在本地绑定值“cols”,以便稍后在函数中对其进行处理。然而,我注意到的是,如果我使用“let”,函数 sel-opt-tmp 将返回一个 nil 值而不是一个列表。

*以上代码返回一个 nil 值。

我知道“let”只绑定函数范围内的值,我不知道是否有办法将值传递到 let 范围之外。也许有我不知道的“返回”之类的东西?或者这只是糟糕的设计,在这种情况下我根本不应该使用绑定(这往往会创建难以阅读的长链函数)?

0 投票
4 回答
1143 浏览

clojure - 为什么不破坏 def 形式?

在一种let形式(Clojure here)中,我可以做类似的事情

wheresvd返回一个长度为 3 的列表。这是一件很自然的事情,所以为什么我们没有

及其作为def表单默认行为的各种概括?我看不出这会如何干扰def已经在做的任何事情。了解 Lisp 或 Clojure 的 Zen 的人能否解释一下为什么def不支持强大的绑定(带解构)let