141 words
1 minute
scheme-debug
Some information may be outdated
use (trace)
- 使用的是
mit-scheme 12.1,在REPL中输入(trace your-procedure-name),再直接调用(your-procedure arg1 arg2 ...)。
use (display)
- 直接在
procedure中打印要观察的变量:
(define (procedure-name arg1) (display "Testing: ") (display arg1) (newline) ... )在REPL中运行procedure可以很清楚的看到变量的变化。
use (pp)
- 可以查看一个一般过程是什么样的。
1. 定义一个过程(define (double x) (lambda (x) (f (f x))))
2. 查看(double)过程:1 ]=> (pp double)(named-lambda (double f) (lambda (x) (f (f x)))) ;Unspecified return value
3. 查看(double x)过程:1 ]=> (pp (double square))(lambda (x) (f (f x))) ;Unspecified return value scheme-debug
https://infini.cv/posts/scheme/scheme-debug/