scheme - 在 Scheme 或 Racket 中何时使用函数以及何时使用宏

标签 scheme racket

有人可以提供一些关于何时使用 Scheme 或 Racket 宏以及何时使用函数的一般指南。

如果您没有创建新语法并且没有对变量产生副作用,那么在某些情况下您必须(或者更合适)使用宏而不是函数?

最佳答案

宏允许您使用完全不同的语法。 宏调用根本不必看起来像函数调用,尽管最简单的宏通常如此。另外,宏在运行前的单独阶段执行 .所以,如果你需要不同的语法,或者如果你想在运行前扩展宏,那么,好吧,使用宏。

一般来说,我会说如果你可以用一个函数干净利落地做到这一点,那么就使用一个函数。

关于scheme - 在 Scheme 或 Racket 中何时使用函数以及何时使用宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9746243/

相关文章:

scheme - "Predicate"一词的起源是指 bool 函数吗?

string - 如何将字符串列表转换为方案中的一个字符串?

list - 如何仅使用 cons 和空列表创建列表? Racket

if-statement - 新 Racket : why is the if statement affecting the return?

c - Racket/C FFI 中的变量函数

scheme - Scheme Meta Circular Evaluator 中的模式匹配功能

canvas - 在 canvas% 元素上绘图

module - Scheme库被*加载*意味着什么? Scheme库什么时候*加载*?

racket - 如何在 DrRacket 中获取上一个命令?

scheme - 将 assoc 中的列表附加到 Scheme 中的另一个列表