を閉じ括弧を置いが不適切に私は次のスキーム機能持つスキーム機能で
(x (nth args 1) (y (nth args 2)()))
を問題は、私はそれを返す必要があり、次のとおりです。
((x (nth args1)) (y (nth args 2))())
端に-the 2つの閉じ括弧は、(n番目の文の後にあるべきである。
これを正しく動作させるにはどうすればいいですか?
がget-アイバーズ呼び出し元:
(define gen-classes
(λ (classes)
(cond ((null? classes) '())
(else
(let* ((class (car classes)))
(eval
`(define ,(cadr class)
(λ (args)
(let (
,(get-ivars (cdr (cadddr class)) 1)
)
(eval
(let* ,(cdar (cddddr class))
(λ (method . args)
,(get-methods (cdadr (cddddr class)))
))))))))))))
ちょっと関係はありませんが、(get-ivars(λ(ivars num)...)) 'を'(define(get-ivars ivars num)...)にすることができれば、 'これは読みやすいのでまた、ここで 'cond'は本当に必要ありません。' if'も同様に動作します。 :) – Mehrdad
待って、どうすれば '(x(n番目のargs1))(y(n番目のargs 2))()'を返すことができますか?それは複数の値を返す!代わりに '((x(n番目のargs1))(y(n番目のargs 2))())'を返すことを意味しましたか? – Mehrdad
@Mehrdad:うん、そういう意味だった。私の悪い! OPで編集。 – jhirsch