../
// 邪道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