【问题标题】:What are Scheme Macros?什么是方案宏?
【发布时间】:2023-04-02 13:20:02
【问题描述】:

什么是方案宏?
它们是用来做什么的?

我在维基百科上读过它,但我仍然不确定宏的实际用途。

【问题讨论】:

  • 查看 Racket 资源以获取数百个实际示例。
  • 这个问题有点太笼统了,我们可以参考一下《Programming Languages: Application and Interpretationcs.brown.edu/~sk/Publications/Books/ProgLangs》之类的书,大概在第35章左右。
  • Scheme 宏主要用于试图说服人们相信带有 gensyms 的 Lisp 宏有问题。 :)

标签: macros lisp scheme


【解决方案1】:

宏对于不能轻易表示为函数的语言扩展很有用。 Matthias Felleisen 建议宏的以下三种半规范用法:

  • 更改评估顺序(即:“或”)
  • 引入新的绑定形式(即:'let')
  • 引入新的数据语言(即:'quote')

有关这些的更多信息,请参阅this posting to the LL1 mailing list

【讨论】:

    【解决方案2】:

    最基本的用法是语法糖。例如何时/直到

    最常见的实际用法是延迟执行。例如延迟

    一个典型的更高级的(因为它破坏卫生)用法是指代特殊形式。

    【讨论】:

      猜你喜欢
      • 2012-12-12
      • 2012-11-26
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      相关资源
      最近更新 更多