月刊R7RS - 第五次投票の結果が出る
(全然月刊じゃない!)
第五次投票の結果が出ている。これは、現在Formal Comment受付中のDraft6を更新するためのもので、けっこう色々なポイントが変更される。
c[ad]+rの移動
非常に印象的な変更は、caadrのようなcarやcdrの合成をbaseから外し、オプショナルにするという決定。
今までのRnRSでは、これらは基本語彙の一部だったが、baseを必要最小限にする課程でこれらは脱落した。実際、多くのscheme実装はこれらの一部をライブラリ関数として実装していて、coreに入れていないことが多い。
手続きや構文のリネーム
- lazy, eager
lazyやeagerは微妙な名称という指摘があったので、それぞれdelay-forceとmake-promiseに改名された。
- exact, inexact
これらはR6RS名に戻った。R5RS名(exact→inexact等)は互換ライブラリに追加される。
除算手続きの整理と削除
centered除算のような、roundingを明示的に指定した除算はsmallから削除された。
char nomalizationライブラリは削除された(= 明示的なUnicode正規化はsmall言語から削除された)。もっとも、ci(Case insensitive)な文字列比較はまだ残っているので、多分普通の処理系はnormalizeしたうえでこれらの比較を実装する。はず。