2024年Clojure调查中分享您的想法!

欢迎!请查阅关于页面以了解更多操作信息。

+1
编译器

显然JVM有一个label/goto机制。向Clojure语言添加这种功能是否可能?

我想有 thể有两个问题可以独立处理。
1. 在理论上是否可能,也就是说,到底JVM指令是否真的允许这种Clojure原语。也许我弄错了,这实际上并不是可能的。
2. 是否能够说服Clojure的核心维护者此请求的优点。

通常在机器生成的代码中,goto很有用,而在人类编写的代码中则不是这样。

我至少有三个用例,我想有这种机制。

  1. 确定性有限自动机的序列化
  2. 判别网的序列化
  3. 将Knuth风格算法从《计算机程序设计艺术》转换为Clojure

我知道许多人可能会就此提出为什么不应该使用goto的哲学论点。我希望避免这种讨论。

在我看来的一个似乎合理的可能性是,Clojure原语类似于Common Lisp prog,尽管绑定变量的能力实际上并非必要,因为用户可以通过使用一些宏定义let来实现它。

1 答案

0

一个相关的问题是Michal Marczyk关于recur-to机制所做的某些工作,这是循环机制中的一种允许不同递归目标的机制。

讲话
https://www.youtube.com/watch?v=SJmK1R0ADnc

Jira问题
https://clojure.atlassian.net/browse/CLJ-2235

by
我们对此提案进行了一些研究,对我来说很难说出它是否会包含进来以及何时会包含进来。
by
Alex,你能谈谈已经讨论过的优缺点吗?
...