Printing 如何打印符号定义而不在Scheme中求值?

Printing 如何打印符号定义而不在Scheme中求值?,printing,scheme,symbols,Printing,Scheme,Symbols,如果我想打印符号的函数定义,我应该怎么做?如果我理解正确,您需要一个函数打印函数,以便 (define (foo x) (cons x x)) 它将表现为 > (print-function foo) (lambda (x) (cons x x)) 标准方案没有这方面的设施。原因是方案实现可能,而且通常会将函数编译成不同的表示形式(字节码、机器码) 有些方案可能会保留函数定义;检查您的实现手册。2.0之前的Guile版本有程序源代码。然而,自从Guile 2.0以来,我再也没有设法让过

如果我想打印符号的函数定义,我应该怎么做?

如果我理解正确,您需要一个函数
打印函数
,以便

(define (foo x) (cons x x))
它将表现为

> (print-function foo)
(lambda (x) (cons x x))
标准方案没有这方面的设施。原因是方案实现可能,而且通常会将函数编译成不同的表示形式(字节码、机器码)


有些方案可能会保留函数定义;检查您的实现手册。

2.0之前的Guile版本有
程序源代码
。然而,自从Guile 2.0以来,我再也没有设法让
过程源代码
工作了。但是,是的,它非常特定于实现,而且大多数实现都不提供任何这样的东西。我正在使用Gambit-C。你知道实现中的这一点吗?抱歉,没有Gambit的经验。Guile 1.9.11之后就有了关于
过程源代码的开放。