アーカイブ

‘PLT Scheme’ タグのついている投稿

[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 で作ったペアに再代入できる。

参考: Getting rid of set-car! and set-cdr!

カテゴリー: コンピュータ タグ: , ,