In message <9902140353.AA02348 / tux0017.sdd.tokyo-sc.toshiba.co.jp>
Inaba Hiroto <inaba / sdd.tokyo-sc.toshiba.co.jp> writes:

> > :「cdr(arr) を意図しています」ということで [] に対して適用したら [] が
> > :返ってきて欲しいわけです.ますます OK です.
>
> arr[start..end]でstart > endの時に例外を出すようになったのなら,
> arr[0,-1]が例外になってもいいと思います. というかそうなったと思って
> rubyが例外を出すのを予期したら, そうなってなかった, という事なんですが.

ま,確かにみょうなんですよね.私も例外になると思ってた.だから「試して
みないと....」なわけですが.

さらに言うと,「cdr(arr) を意図して入るけど [] は base case だから特別
に扱ってるんだよね」っていうことで,そもそも [] に適用して [] が返って
くる必要もなかったりして.

# あんまり考えないで書いてるのがばればれ (^^;


> > 逆に car と cdr を Array に追加するとか :-)
> 
> Schemeだと(car '())や(cdr '())はエラーになりますよね.

これも「ふつうなら base case で特別扱いしているだろう」という感じがあ
りますよね.いい加減な再帰関数を書くと停止しませんし.

# というか,停止しないように書けますね.適当に書くと場合によっては
# stack overflow で止まるでしょう.... ふつうそういうのは停止とは言いま
# せんが.


> # 柳川さんにとっては好ましくない方向への提案ですね. すみません.

ということで,多分問題無いのでした.「多分」と言ってしまうあたりが弱い.

# あとはモデルとしての美しさと実装の手間の問題ですね.まあ [x..y]= や
# [x, y]= でやっているのと同じチェックを参照でもやるだけですけど.

-- 
柳川和久 @ 東大阪市 . 大阪府                              February 14, 1999
Every body's business is nobody's business.