未绑定变量'trace'

时间:2016-11-17 00:02:37

标签: terminal scheme trace guile

我正在尝试使用guile函数跟踪,但每次都这样做,我得到一个可能的未绑定变量。

scheme@(guile-user)> (define (fact1 n)
(if (zero? n) 1
(* n (fact1 (- n 1)))))
scheme@(guile-user)> (trace fact1)
;;; <stdin>:4:0: warning: possibly unbound variable `trace'
<unnamed port>:4:0: In procedure #<procedure 10e4080c0 at <current input>:4:0 ()>:
<unnamed port>:4:0: In procedure module-lookup: Unbound variable: trace

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]> 

我想知道是否有人知道为什么这不起作用。

1 个答案:

答案 0 :(得分:3)

使用,trace

GNU Guile 2.0.12
Copyright (C) 1995-2016 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (define (fact1 n)
... (if (zero? n) 1
... (* n (fact1 (- n 1)))))
scheme@(guile-user)> ,trace (fact1 5)
trace: |  (#<procedure 110221480> #(#<directory (guile-user) 10f9fabd0> #f))
trace: |  #(#<directory (guile-user) 10f9fabd0> fact1)
trace: (#<procedure 11022e1e0 at <current input>:2:0 ()>)
trace: (fact1 5)
trace: |  (fact1 4)
trace: |  |  (fact1 3)
trace: |  |  |  (fact1 2)
trace: |  |  |  |  (fact1 1)
trace: |  |  |  |  |  (fact1 0)
trace: |  |  |  |  |  1
trace: |  |  |  |  1
trace: |  |  |  2
trace: |  |  6
trace: |  24
trace: 120