Schemeのコードを解読しています。
libctl/io-vars.scm
の26-27行目を見ると、
Scheme
1(defmacro-public define-param (name value) 2 `(define ,name (if (defined? (quote ,name)) ,name ,value)))
の中にdefined?という単語があります。
このdefined?の実装箇所やドキュメントを、ご存じでしたらご教示ください。
Googleで"Scheme defined?"で検索しても関係しそうなものは出てこないです。
また、libctlのフォルダ内を
bash
1grep defined? -rl .
にて検索して出てきた
./base/interaction.scm
./base/io-vars.scm
./base/math-utils.scm
./utils/geom.scm
の中を見てみましたが、定義箇所を見付けられませんでした。
このdefine-paramというマクロは
Scheme
1(define-param var-name var-value)
とすると、変数var-nameが宣言され、値var-valueが代入されます。
プログラムを呼び出すときに
gosh sample.scm var-name=321
とするとvar-nameに321という値をコマンドラインから代入することができるようになる点が(define var-name var-value)と異なっており、便利なマクロです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/07 17:54
2018/10/07 18:04