gaucheでtraceを使う
内部リンク
Gauche:FAQ
の項目「Q. INSTALL.eucjpの通りにconfigureしたのに、エラーによりSLIBが実行できないのですが。」
に書かれている以下の方法を実行してmakeしなおしたら使えるようになりました。
# ./configure --with-slib=/usr/share/umb-scheme/slib # make # make install
木構造をランダムに作るコードでtraceを実験
traceを実行した例
gosh> (use slib) #<undef> gosh> (require 'trace) (trace alist qp bignum complex real rational inexact vicinity source rev5-report eval values dynamic-wind macro delay multiarg-apply char-ready? rev4-optional-procedures rev4-report ieee-p1178 multiarg/and- with-file ieee-floating-point full-continuation defmacro record string-port sort object->string system getenv program-arguments current-time byte) gosh> (load "./random-tree.scm") #t gosh> (trace create-individual-program) #<closure (debug:trace-procedure debug:trace-procedure)> gosh> (create-individual-program allowable-depth top-node-p full-p) CALL create-individu... 5 #f #t CALL create-individu... 4 () #t CALL create-individu... 3 () #t CALL create-individu... 2 () #t CALL create-individu... 1 () #t RETN create-individual-program (car j) CALL create-individu... 1 () #t RETN create-individual-program (define a y) RETN create-individual-program (cons (car j) (define a y)) CALL create-individu... 2 () #t CALL create-individu... 1 () #t RETN create-individual-program (cdr d) RETN create-individual-program (car (cdr d)) RETN create-individual-program (define (cons (...) ...) (car (cdr ...))) RETN create-individual-program (car (define (cons ...) (car (cdr ...)))) RETN create-individual-program (list? (car (define (cons ...) (car ...)))) (list? (car (define (cons (car j) (define a y)) (car (cdr d)))))