将'cond'改为一种特殊形式而不是语法糖有什么好处?有什么样的优势可以改变'cond'是一种特殊形式
0
A
回答
0
cond是一种特殊的形式,因为参数必须在必须进行评估之前进行评估。
非常重要。如果我没有弄错,如果最初形式没有。
其实如果形式可以是使用宏的语法糖。
5
在方案上具有里程碑意义的论文之一(Lambda the Ultimate Declarative,§1.2),斯蒂尔写道:
但是,无可否认, IF-THEN-ELSE似乎是最简单的 条件控制操作很容易 能够表达所有其他人。
然后,他在§4.1写道:
虽然我提出构建只 的 编译器的下级部分,再加上必要的宏 提供标准LISP等功能 COND和PROG,人们可以很容易想象构建ALGOL 编译器,例如,通过提供 解析器和必要的宏作为 前端。
是斯蒂尔试图在这方面和其他文件进行,包括对兔编译他MS thesis,是if
比cond
简单,一般它更有意义的一点宏观扩展库语法cond
和case
转化为更简单的基本语法,如if
。通过这种方式,您可以保持编译器需要了解的输入语言简单,其优点是易于推理,实施和优化。这一切都符合Scheme I猜想的简约设计。从表面上看,人们可能会想,cond
可以更好地编译(想想switch表)。与所有关于“优化”的问题没有实际的数据或证据一样,这可能是一个过早的结论,实际上我不会赌我的钱是真的。
因此,要回答您的问题,我认为在Scheme中使用cond
而不是宏中的宏必须有真正的或持久的优势。或者,如果有优势,至少会有一些劣势,比如更复杂的评估人员。
相关问题
- 1. 有什么优势Laravel形式语法
- 2. clojure的特殊形式是什么?
- 3. 工厂模式的优势是什么?
- 4. 链式异常的优势是什么
- 5. 为什么两种造型元素的方式有优势吗?
- 6. '做'特殊形式做什么?
- 7. pathmunge优于grep的优势是什么?
- 8. Kafka优于RabbitMQ的优势是什么?
- 9. reftype {}有什么优势?
- 10. Eclipse RCP - 形式的优势
- 11. 有什么优势可以覆盖ORM中的==运算符?
- 12. 编码这种或那种方式是否有性能优势?
- 13. 为什么MVVM以及它的核心优势是什么?
- 14. 特殊形式和宏之间的实际区别是什么?
- 15. 什么是多态,它的两种形式或多种形式?
- 16. mini-kanren cond-a cond-u和cond-e的区别是什么?
- 17. Scheme,SICP,R5RS,为什么延迟不是特殊形式?
- 18. 有没有一种方法可以在SQL中询问“改变了什么?”?
- 19. 什么是Android的领先优势?
- 20. 什么是JavaCC的优势与ANTLR
- 21. C#4中DLR的优势是什么?
- 22. 什么是asp.net mvc的优势?
- 23. Silverlight中DLR的优势是什么?
- 24. ASP.NET Webforms的主要优势是什么?
- 25. 键值存储的优势是什么?
- 26. 这种形式的名称是什么?
- 27. SVN和Apache - 有没有什么优势?
- 28. 有没有一种方法可以识别什么是缓存特定文件?
- 29. Button上的ImageButton有什么优势吗?
- 30. rsh与Perl的Expect.pm有什么优势?
特殊形式和语法糖有什么区别?我不明白这个问题。 – grettke 2010-02-19 19:50:25
像'(如果c e a)'这样的特殊形式不符合首先评估操作符和操作数的正常评估规则,然后应用评估操作符来评估操作数。语法糖在解析阶段被转化为等价但更基本的基本语法。 – eljenso 2010-02-19 20:01:02