Schemeのライブラリlibctlを勉強しています。
Scheme
1(load "libctl/base/io-vars.scm") 2(load "libctl/base/matrix3x3.scm") 3(load "libctl/base/vector3.scm") 4(load "libctl/base/utils.scm") 5(load "libctl/base/class.scm") 6(load "libctl/utils/geom.scm")
を動かしてみると、
libctl/utils/geom.scm:196:0: In procedure module-lookup: Unbound variable: dimensions
というエラーがでます。
libctl/utils/geom.scmの196行目を覗くと
(define-input-var dimensions 3 'integer)
となっています。
define-input-varの定義はlibctl/base/io-vars.scmにあり、
(defmacro-public define-input-var (name init-val var-type-name . var-constraints) `(begin (define-param ,name ,init-val) (input-var! (lambda () ,name) (quote ,name) ,var-type-name ,@var-constraints)))
となっています。
エラーの原因が分かりません。
解決方法をご教示いただけると幸いです。
(define-input-var dimensions 3 'integer)を動かすのに必要そうな場所をbase/io-vars.scmから抜粋して以下のように一つのファイルにして実行するとエラーは出なくなります。
(define input-var-list '()) (define (make-var value-thunk var-name var-type-name var-constraints) (list var-name var-type-name var-constraints value-thunk)) (defmacro-public define-param (name value) `(define ,name (if (defined? (quote ,name)) ,name ,value))) (define (input-var! value-thunk var-name var-type-name . var-constraints) (let ((new-var (make-var value-thunk var-name var-type-name var-constraints))) (set! input-var-list (cons new-var input-var-list)) new-var)) (defmacro-public define-input-var (name init-val var-type-name . var-constraints) `(begin (define-param ,name ,init-val) (input-var! (lambda () ,name) (quote ,name) ,var-type-name ,@var-constraints))) ;---------ここまでbase/io-varsの抜粋------------------- (define-input-var dimensions 3 'integer)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/08 10:01
2018/10/08 11:19
2018/10/08 11:37