【发布时间】:2011-04-27 18:58:25
【问题描述】:
两者似乎都适合构建可扩展的 API 和代码生成。
它们之间的主要区别是什么?
您认为他们的优势、劣势、...
【问题讨论】:
两者似乎都适合构建可扩展的 API 和代码生成。
它们之间的主要区别是什么?
您认为他们的优势、劣势、...
【问题讨论】:
免责声明:我对 Clojure 比对 Tcl 更熟悉,所以如果我歪曲任何内容,我向任何 Tclers 道歉。然而,这里有一些我通常知道的点:
平均而言,两种语言都非常适合元编程,但如果我在两者之间进行选择:
【讨论】:
list 的效果大致相同(列表是可评估的无替换命令,非常有用)。
我认为 mikera 的回答非常好。
我只想补充一点,在 clojure 元编程倾向于关注宏的地方,一个没有对等的大统一元编程解决方案,tcl 有几个可用于元编程的小工具,其中“未知”命令可用于各种漂亮的技巧。同样有趣的是,尽管 clojure 只有少量关键字或“特殊形式”,但 tcl 实际上没有,这使得 tcl 成为自己的 dsl,并且可以更改(或扩展)任何命令的行为。
mikera 的回答中我必须不同意的一件事是关于 clojure 的语法更适合元编程的部分。使用 clojure 时对我来说令人不快的惊喜之一实际上是 clojure 中有多少句法变化,以及 () [] {} "" ^{} #' :key ... 等等的各种用法。我完全理解这种语法糖的合理性,但实际上我发现 tcl 的语法更容易处理“笨拙”的元编程和代码生成。并且 tcl 的“一切都是字符串”的性质增加了简单性。
至于多处理能力、不可变数据结构、纯函数性质以及许多其他 clojure 的独特之处,在 tcl 中确实没有可比性。
我完全同意 mikera 的结论。
【讨论】: