Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macros 添加f-EXPR是否简化了LISP中基本表达式宏的实现?_Macros_Clojure_Lisp_Scheme - Fatal编程技术网

Macros 添加f-EXPR是否简化了LISP中基本表达式宏的实现?

Macros 添加f-EXPR是否简化了LISP中基本表达式宏的实现?,macros,clojure,lisp,scheme,Macros,Clojure,Lisp,Scheme,他认为将FEXPR添加到LISP可以极大地简化scheme中语言的实现 如何使用MacCarthy的LISP实现宏 我的问题是-添加f-expr是否简化了LISP中宏的实现?我就是那个家伙。:) 与内核语言一样,FEXPR极大地简化了语言-只有三个内置模块:$define!(用于向环境添加新绑定)、$if(通常)和$vau(类似于lambda,但不计算其参数) 此外,宏(FEXPR)可以作为函数使用,这与当前的LISP不同,在当前的LISP中,宏与运行时分开工作。这使得语言更加通用 也就是说,到

他认为将FEXPR添加到LISP可以极大地简化scheme中语言的实现

如何使用MacCarthy的LISP实现宏

我的问题是-添加f-expr是否简化了LISP中宏的实现?

我就是那个家伙。:)

与内核语言一样,FEXPR极大地简化了语言-只有三个内置模块:$define!(用于向环境添加新绑定)、$if(通常)和$vau(类似于lambda,但不计算其参数)

此外,宏(FEXPR)可以作为函数使用,这与当前的LISP不同,在当前的LISP中,宏与运行时分开工作。这使得语言更加通用


也就是说,到目前为止,还没有用内核或另一个新的带有fexprs的Lisp编写的实际应用程序。这是一个由少数人积极修补的领域。

关于lisp,重要的是抽象,而不是实现。实现的简单性需求与抽象的简单性需求几乎无关。以eval为例,你可以把它的定义放在黑板上,但它唯一有用的是教你计算的一个方面,即递归地定义它本身。这些知识的有用性远不如eval所能提供的有用性。我很感兴趣,因为我总是发现宏和函数之间的区别有点过于武断。将这些(实验性)添加到Clojure中有多容易?可能很难。FEXPR需要解释,因为目前还没有有效编译它们的已知方法。包含指向LtU讨论的指针,其中人们讨论实现问题。我是否正确地认为这种方法仅适用于解释?@mikera指出,某种fexpr实现可能正在走向终结。。。