相关疑难解决方法(0)

为什么eval邪恶呢?

我知道Lisp和Scheme程序员通常会说eval除非必要,否则应该避免.我已经看到了几种编程语言的相同建议,但我还没有看到一个反对使用的明确论据列表eval.我在哪里可以找到使用中潜在问题的说明eval

例如,我知道GOTO程序编程中的问题(使程序难以理解且难以维护,难以找到安全问题等),但我从未见过反对的论点eval.

有趣的GOTO是,相反的论点应该对延续有效,但我看到Schemers,例如,不会说延续是"邪恶的" - 你在使用时应该小心.他们更倾向于使用代码而eval不是代码使用continuation(据我所知 - 我可能是错的).

lisp scheme eval clojure common-lisp

141
推荐指数
8
解决办法
1万
查看次数

Lisp/Clojure:编写函数生成宏是个好主意吗?

这个问题要求创建一个Clojure宏来生成几个函数.我们找到了一种方法来做到这一点,但却坚持"这是一个好主意吗?"的问题.

我最初的反应并不是真的,原因有两个

  1. 然后,您的代码中没有定义函数,这可能会使您对代码的理解变得复杂!(想象一下,有人对你的某个功能有问题,并查看源代码,但却无法在任何地方找到它).
  2. 最好在函数或宏中分解代码的通用性.让你的计算机编写一堆非常相似的函数是一种糟糕的方法.

你怎么看?什么时候在Lisp中生成函数有意义?它应该"在飞行中"还是你想把它放在某个地方?

lisp macros metaprogramming clojure

6
推荐指数
1
解决办法
532
查看次数

标签 统计

clojure ×2

lisp ×2

common-lisp ×1

eval ×1

macros ×1

metaprogramming ×1

scheme ×1