MzSchemeで構造体
リストで構造体作るのが面倒なので、MzSchemeの構造体を試します。
ドキュメントはここら辺。
PLT MzScheme: Language Manual
構造体の定義
(define-struct book (title jp-title))
ふむふむ。(define-struct 構造体名 (フィールド))。
新規作成
うはナンダコレ。make-構造体名で構造体に新規データを作れる。
(define sicp (make-book "SICP" "計算機プログラムの構造と解釈"))
らくちん。
アクセサ
なんも定義してないけどアクセサまで作られちゃいます。スゲェ。構造体名-フィールド名でアクセス
(book-title sicp) ; SICP (book-jp-title sicp) ; 計算機プログラムの構造と解釈
頭いい。
set!
構造体なので、set!があると嬉しい。set-構造体名-フィールド名!でset!
(set-book-title! sicp "Structure and Interpretation of Computer Programs -- 2nd ed.") (book-title sicp) ; Structure and Interpretation of Computer Programs -- 2nd ed.
完璧。
継承
おいおい。クラスじゃねーぞー。構造体の粋を遥かに上回ってます。
(define-struct (sub-book book) (ISBN)) (make-sub-book "K&R" "プログラミング言語C" 'ISBN1-23456-789-1) ; #<struct:sub-book>
凄すぎデス。
まとめ
やばい。らくちん過ぎる。