私は自分自身に教えているように構造体を作成しようとしていますが、私はさまざまな練習問題それのための。今、私は、次の仕様を持つ構造体を作成しようとしている:複数の値を返す構造体にガード句を書くにはどうすればいいですか?
名:
grade
フィールド:
midterm
(整数と大きい0
final
よりでなければならない(でなければなりません整数、0より大きい)
course
(記号または偽でなければなりません)
私がこれまで書いてきたことは、この
(struct grade (midterm final course)
#:guard (λ (midterm final course name)
(unless (and (integer? final) (> final 0))
(error "not a valid final grade"))
(unless (and (integer? midterm) (> midterm 0))
(error "not a valid midterm grade"))
(unless (or (symbol? course) (false? course))
(error "not a valid course grade"))
'(midterm final course)))
ですが、それはunimplementableです。私は、ガード節がリスト'(midterm final course)
を返すので、私は信じていますが、(midterm final course)
を返し、ちょうどmidterm final course
を返すガード句を含む私が試した他の実装もうまくいきませんでした。このガード節を動作させるにはどうすればよいですか?
ありがとうございました!私は価値観が存在することを知らなかった。これは完璧です。 –