问题标签 [clojure]
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.
java - 在没有 Java 知识的情况下学习 Clojure
好的,所以我对另一个列表感到兴奋。我给自己买了一本测试版 Clojure 编程书……
我最注意到的一件事是假设我知道......就像所有主要的java类一样。
除了,一般来说,我并不真正关心 Java。我只是希望有足够的知识让 Clojure 成为我的选择。
关于如何学习我所需要的一切的任何建议?
clojure - Clojure 读取行函数问题
我试图在我的 Clojure 程序中获取控制台输入,但是当它到达程序的那个部分时它给了我这个错误。
“读取”功能有效,但这不是我需要的。这是我正在使用的代码。
编辑:
这显然只是我正在使用的版本。它是当前 Programming Clojure 示例代码中包含的版本,我将测试当前的发布版本,看看是否有问题。
clojure - Clojure 'if' 从不评估它的第三个参数
一段时间以来,我一直试图弄清楚这个。
这就是我写的函数。is-decimal
要么传递诸如 "2.5" 或 "5" 之类的东西,但它总是使用if
' 的第二个参数,而不是它的第三个参数。我(. astr (indexOf (int \.)))
在 REPL 中进行了测试,它似乎工作正常,失败时返回 -1,失败时返回 1。我相信这可能是问题所在。-1 在 Clojure 中并不意味着错误。谁能想到解决这个问题的方法?
提前致谢。
编辑:感谢您的帮助。在我写完这篇文章后,我有了一个想法。我编写了一个检查 1 和 -1 的谓词函数。正是我需要的。我不应该在醒来后直接编码:\
lisp - 复合布尔测试的 Clojure(或 Lisp)等价物
在 C++ 中,我会写这样的东西:
我认为 Clojure 等价物是这样的是否正确:
还是有另一种方法来执行我错过的逻辑“和”?正如我所说,后一种形式似乎工作正常——我只是想知道是否有一些更简单的方法来执行逻辑与。在 Clojure Google Group 上搜索“boolean”、“logical”和“and”会发现太多结果,没有太多用处。
lisp - Lisp 代码格式化
一位花时间评论我关于 Clojure/LISP 语法的其他问题的人指出,我没有以标准 LISP 方式编写示例代码。所以他很友好地重写了代码片段,这是一个很大的帮助。但它在我的脑海中提出了另一个问题。为什么会这样:
这是标准 LISP 格式比这种形式更可取:
由于我的 C++ 开发背景,这就是我天真地格式化此代码的方式。我想知道后一种格式是否有任何好处,或者它只是一个根深蒂固的标准(如 QWERTY 键盘)。我并不是要争论——我很难理解为什么第一种形式更可取。第二种形式帮助我更容易地查看代码结构。
struct - Clojure 结构嵌套在另一个结构中
是否可以在 Clojure 的结构中嵌套结构?考虑以下代码:
当然,这是一个人为的例子,但在某些情况下,我想将大型数据结构分解为更小的子结构,以使代码更易于维护。正如评论所表明的,如果我做表格 1,我会得到“249 nil nil”,但如果我做表格 2,我会得到“结构构造函数的参数太多”。
如果我以错误的方式处理这个问题,请告诉我我应该做什么。搜索 Clojure 谷歌组并没有为我找到任何东西。
编辑:
我想我在问题的陈述中并没有我想的那么清楚:
1.) 是否可以在 Clojure 中将一个结构嵌套在另一个结构中?(从下面判断是肯定的。)
2.) 如果是这样,正确的语法是什么?(再一次,从下面来看,似乎有几种方法可以做到这一点。)
3.) 当你有一个嵌套在另一个结构中的结构时,你如何通过指定的键获取一个值?
我想我的示例代码并没有真正证明我想要做得很好。我在此处添加此内容,以便其他搜索此内容的人可以更轻松地找到此问题及其答案。
lisp - 我应该学习哪种 Lisp?
我应该学习哪种 Lisp(方言),为什么?
CL 和 Scheme 之间的碎片化减慢了吸收(至少对我而言!)。
所以,请给我“真正的答案”!
我试图阅读功能比较,它们似乎陷入了深奥(我不完全理解),比如方言是否完全尾递归等等。我希望你们所有人(集体)能够清楚地说明不透明的差异。
我喜欢的东西
良好的库支持、良好的环境和 Unicode 支持。
我不喜欢的东西
火焰战争。一开始很有用,但会干扰长期学习的功能。
更新
一旦我获得了 readline 支持,我一直在使用 MzScheme,我很享受。我不在 Unix 上运行 GUI,所以它对我来说似乎是一个很好的环境选择。
我也很高兴 Clojure 有一个易于在 debian 上安装的 .deb 包,因此它更易于使用。这是一个很大的胜利。尽管下面有一些相当容易激怒的敌意,但进入门槛低是一种胜利。我喜欢被勺子喂。
在阅读了更多的SICP 之后,我确实更好地理解了尾递归的问题。
java - 你能混合使用 JVM 语言吗?即:Groovy & Clojure
我知道你可以很容易地混合 groovy&java、clojure&java、whateverJvmLang&java。
这是否也意味着我也可以让 clojure 和 groovy 代码交互?如果我使用 Grails 或 jRoR,我也可以在那个环境中使用 clojure 吗?
lisp - 将 Common Lisp 代码移植到 Clojure
将 Common Lisp 应用程序移植到 Clojure 有多实用?更具体地说,Common Lisp 中存在哪些 Clojure 中不存在且必须重写的功能?
functional-programming - 如何让我的大脑以“lisp 模式”运转?
我的教授告诉我们,我们可以为下一个编程任务选择一种编程语言。我一直想尝试一种函数式语言,所以我想我会尝试 clojure。问题是我理解语法并理解基本概念,但我无法让所有内容都在我的脑海中“点击”。有人有建议吗?还是我可能选择了错误的语言来开始函数式编程?