[Scheme][Racket] set-car! set-cdr! が使えない
2011 年 11 月 8 日
コメントはありません
racket コマンドで起動した Racket では set-car! や set-cdr! が定義されていなかった。
調べてみると Racket ではペアへの破壊的な代入を許さないらしい。
代わりに mcons というデータ構造が用意されていてこちらは set-mcar! や set-mcdr! といった手続きで代入ができる。
R5RS に基づいて書かれた Scheme のプログラムを動かすにはペアを扱う手続きを mcons を使うものに定義し直す必要があるが、すでにそれをするパッケージが用意されている。
> (require r5rs)
とすると、set-car! や set-cdr! が定義され、cons で作ったペアに再代入できる。
最近のコメント