【发布时间】:2013-11-26 09:22:06
【问题描述】:
根据this 问题的答案,只要您在语言本身中实现eval 函数,在Lisp 中实现任何东西只需要五个实际函数。我说的对吗?
我想用 Java 实现一个非常简约的 Lisp,使用尽可能小和简单的解释器使其尽可能小。我可以只用这五个功能吗?它甚至会如何从 Java 中调用eval?我不知道如何解决这个问题。任何人都有这样编写的解释器示例,并且用另一种语言实现了非常小的实现?
【问题讨论】:
-
当一个真正有效的问题被由于自己的无知而无法理解的人关闭时,这种情况变得太普遍了。 OP 在问什么非常明显,这是一个非常实际和具体的问题。对SO感到羞耻。如果你不明白这个问题 - 走开,好吗?
-
@SK-logic 我同意“不清楚你在问什么”是关闭这个问题的错误理由。然而,第二段是一个问题列表,其中一些问题实在是太宽泛了,并且会吸引列表的答案(例如,“它甚至如何从 Java 调用 eval?”和“任何人都有任何这样编写的解释器示例,带有用另一种语言实现的极少?”)我认为这个问题需要成为一个更具体的编程问题,然后才能真正成为 Stack Overflow 的主题。
-
@JoshuaTaylor,它仍然归结为一个问题(尽管我同意给定的措辞远非完美):“构建简约的 Lisp 实现需要哪些最小的原语集”。
-
@SK-logic 标题有,但问题没有。问题还问,例如,“它怎么会从 Java 调用 eval?”如果答案只列举了原语,那么它不会回答“我的 Lisp 如何从 Java 调用 eval?”如果它只回答“我的 Lisp 如何从 Java 调用 eval?”那么它不会回答“什么是必要的原语?”一种刻薄的方法会专注于“我正确吗?”并回答“是”。我认为不清楚 OP 在问什么,但我认为 OP 在一个问题上问的太多了。
-
@JoshuaTaylor,在简约解释器中调用
eval函数绝对取决于解释原语的选择。不确定是否可以单独设计这些东西(例如,请参阅我的答案)。
标签: java function lisp eval interpreter