スロットの表記位置

http://d.hatena.ne.jp/fatrow/20100208/1265639951 で、”人気の言語を作るには”で前置式後置式のアプローチが言及されていることを知った。

より深刻な問題は、前置記法の散慢さだ。 優れたハッカーにとってはこれが本当の問題だ。誰も、a[x,y]と 書けるところを(aref a x y)と書きたいとは思わない。

この特定の例に関しては解決策がある。データ構造を、インデックスが渡された時は 関数であるかのように振舞わせれば、(a x y)のように書くことができて、 これはPerlの書式よりも短い。他の式も似たようなトリックを使って短くできるだろう。

後置

(book :title)

殆どの言語は後置によるスロットアクセスを持っている。殆どのプログラマは後置によるスロットアクセスを習得していると考えられる(例えばCのstructとかC++のclassとして)。
後置が特に合理的なのは、操作対象のオブジェクトが常に明確になる点にある。また、より複雑なオペレーションを行うときに、オペレータが連続する(操作に対して多値を渡すことができる)という特徴もある。

前置

(title: book)

yuniSchemeのような前置によるスロットアクセスはマイナーで、現実的な言語では殆ど採用されていないように思える。...個人的にはこちらの表記の方が自然に思えるが、多くの人にとっては自然ではないだろう。
前置のメリットは、字句上からスロットアクセスであることが明確になる点。よって、より非侵襲的に既存のSchemeに実装できる可能性がある。
また、スロットに何らかの手続きが格納されている場合、手続き名が先に来るので認識しやすいかもしれない。

(for-each (display: OutputPort) l)