// 邪道Scheme
#import "/template.typ":doc-template
#doc-template(
title: "邪道Scheme",
date: "2022年12月13日",
body: [
因为Scheme和Lisp系的其他语言一样,过于灵活,因此可以往语言里面加入很多奇怪的东西。甚至,如果想用命令式的方式,像Python一样编写Scheme代码,也是可以的。
这篇文章中的代码都是为GNU Guile和TinyScheme而写的,这两个解释器都支持老式的Lisp宏。这种宏在Common Lisp当中更多见,并不卫生,也不属于任何Scheme标准。但是大多数解释器和编译器都支持。
例如,假如想在Racket中运行,只需要在代码前面加入下面这段语法就可以了:
```
#lang racket
(define-syntax define-macro
(lambda (x)
(syntax-case x ()
((_ (macro . args) body ...)
...
Email: i (at) mistivia (dot) com