Schemeのコードを解読しています。
libctl/class.scm
の196-211行目を見ると、
Scheme
1(define (make class . property-values) 2 (if (list? class) 3 (let ((o 4 (extend-object 5 (apply make (cons (class-parent class) property-values)) 6 (class-type-name class) 7 (map (lambda (property) 8 (get-property-value property property-values)) 9 (list-transform-negative 10 (class-properties class) property-derived?))))) 11 (fold-left (lambda (o p) 12 (modify-object o (derive-property p o))) 13 o 14 (list-transform-positive 15 (class-properties class) property-derived?))) 16 null-object))
の(define (make class . property-values)に「.」という文字があります。この「.」の働きがよく分かっていなくて困っています。
Guileのドキュメントを検索すると、よく似た関数のdefine*には、残りの因数を.の後ろの変数が全部取るとあります。
実際、makeは使用例ではmake gaussian-src (frequency fcen) (fwidth df))のように2つ以上の引数を取ることがあるのですが、この場合、property-valuesの型はどうなっているのでしょうか?
ご存知の方ご教示ください。
(例えばJavaの場合
Java
1void func(Object... a){ 2}
とすると、aは引数を並べた配列となるのですが、似たようなことになるのでしょうか?)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/08 04:07
2018/10/08 04:40
2018/10/08 04:43