我正在尝试使用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]>
我想知道是否有人知道为什么这不起作用。
答案 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