问题标签 [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 回答
2077 浏览

haskell - 'let' 上的 Haskell 解析错误

所以我是 Haskell 的新手,我必须编写 Rabin Karps 算法。我觉得我的答案应该有效,但是我在编译时不断收到“'let' 上的解析错误”错误。谁能帮帮我。

这是我的代码:

0 投票
4 回答
4880 浏览

haskell - GHCi“让”——它有什么作用?

如果有人可以指出有关“让”在 GHCi 中的作用的文档,或者如果失败,请令人信服地解释它,我将不胜感激。

据我所知,“let”(没有“in”)本身不是 Haskell 语言的一部分,另一方面,它似乎也不是 GHCi 命令,因为它没有以冒号为前缀.

0 投票
2 回答
517 浏览

lisp - 学习 Lisp。似乎无法从一个函数中获取值并在另一个函数中使用它

我正在尝试在列表中找到最大数量,然后对其进行处理:

但是它打印 null,但 maxList 有效。我究竟做错了什么 ?

0 投票
2 回答
116 浏览

macros - 迭代创建局部变量?

我创建了一个函数,它将任意长的数字列表作为参数。从这个列表中,我希望使用let. 矩阵将根据列表内的数字序列具有行和列。例如,

应该在本地创建

也就是说,第一个矩阵从列表中相邻元素的前两个元素中获取其维度,依此类推。

我的问题是:有没有办法Mnlet表达式中迭代地创建任意长的局部变量集?或者这是我应该使用宏的情况?

0 投票
1 回答
831 浏览

haskell - lambda中的haskell嵌套let

我必须错过一些东西,但我不明白为什么这个人为的例子不起作用:

ghci > 输入“h”时解析错误

但是,这个等效的部分是好的:

我相信这是我的语法问题,但我在 test1 中看不到任何错误。谢谢。

编辑:感谢您指出找到问题的正确方法。原来与 vim-haskellConceal 插件有关。我将代码复制粘贴到另一个编辑器中,然后切换回 vim 并注意到嵌套的 let-in 块中有不同的缩进。删除该插件后一切正常。

编辑:我应该停止指责这个插件,因为我简要阅读了它的代码,没有发现任何不合适的地方。也许vim7.3中的“隐藏”功能是根本原因。但我宁愿去我温暖舒适的床...

0 投票
1 回答
294 浏览

clojure - 在 Clojure 中循环一个“let”列表?

如果我有一个未知数量的参数,我想用“let”相互绑定,例如:

如果我在函数/宏或类似函数中绑定 let 并且我想遍历列表,我将如何执行此操作?

请注意,在 let 中有 4 个元素,但我只想遍历“键”。一个使用示例可能是检查绑定到键的值是否是像 b 这样的数字,即 55

编辑:作为一个例子:请注意,以下内容非常糟糕,但它只是为了解释问题:

输入:(func [a“你好”b 55]

所以基本上:我想要一个功能:

  • 将参数绑定到某种形式的列表,例如:[ab]
  • 打印“omg no way!”) - 不应该是循环的一部分,应该只在函数中打印一次
  • 某种循环,例如循环通过“let-list”的for循环,所以它会去:“a,是一个数字吗?不,是b数字吗?是的,打印“roar”

输出:omg 没办法咆哮

再一次: 我想知道是否有一种方法可以访问函数内部的关键字。正如 for 循环所示,我想访问每个单独的元素并使用该元素执行操作。如果我使用 (for [x arguments] 代替,它会给出:omg no way, roar roar (因为 b 绑定到 55 所以它是一个数字但 55 也是一个数字但没有必要使用 55 因为 55 是已经绑定到 b)

0 投票
1 回答
1135 浏览

record - 在 Z3 中编码 let 表达式

下面的代码用两个字段array-fldblist-fld. 我已经为这些字段定义了更新函数,然后断言了一个应该为 true 的属性(但 z3 报告为unknown)。这是 Z3 版本 4.0,运行为z3 -smt2 -in

如果我通过替换方程式 array-val 绑定手动展开/消除存在,我得到

这很高兴地解决了sat

我想这里面有四个问题:

  1. 有没有办法调用 z3 来解决第一个实例和第二个实例?
  2. 我应该以不同的方式编码我的记录/结构吗?
  3. 我是否应该以不同的方式编码我的 let 表达式(正是这些导致存在量化)?
  4. 或者,我是否应该直接扩展 let 表达式(我可以自己做,但如果有很多引用,它可能会导致大术语)。
0 投票
1 回答
118 浏览

for-loop - 基本的 Clojure 语法

假设我有一个宏,在宏里面我有这个:

因为我很难找到关于非常简单的 Clojure 东西的正确信息,所以我在这里问:我需要做什么才能完成上述任务?我认为应该可以做到这一点,但我不知道最关键的部分!

0 投票
1 回答
66 浏览

variables - let* 中未定义的变量

出于某种原因,当我尝试 Cc Ck 包含代码的程序时:

我收到一条错误消息,提示“变量rank-dump-vec未定义”。我不确定为什么会这样——我相信反引号和逗号是可以的。我错过了什么吗?

0 投票
1 回答
144 浏览

haskell - 在没有类型注释的 let 绑定中避免单态

我有一些使用类型来消除实例歧义的代码(真正的代码是使用 GHC.TypeLits 单例作为类型标签,但我认为这不是密切相关的),我想使用 let 绑定来避免文本级重复; 不幸的是,这使结果单一化。

以下是该问题的一个示例:

上面的代码不能编译(但是,当然,如果我输入 annotatequux是多态的,一切正常),正确地抱怨它不能IntChar. 有没有什么方法可以让编译成功而无需类型注释并且无需bar undefined在每个使用站点重复?