[#11952] NORETURN — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

24 messages 2001/01/10
[#11956] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11957] Re: NORETURN — matz@... (Yukihiro Matsumoto) 2001/01/10

まつもと ゆきひろです

[#11958] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11959] CVS branches (Re: Re: NORETURN) — matz@... (Yukihiro Matsumoto) 2001/01/10

[#12087] string#index, gsub, []= のバグ? — Beyond <beyond@...>

18 messages 2001/01/27
[#12091] Re: string#index, gsub, []= のバグ? — matz@... (Yukihiro Matsumoto) 2001/01/27

まつもと ゆきひろです

[ruby-dev:12051] Re: [ruby-list:27261] Re: Array#sort!

From: UENO Kazuaki <kazu@...>
Date: 2001-01-21 07:12:45 UTC
List: ruby-dev #12051
Yukihiro Matsumotoさんの<979996390.519441.26729.nullmailer@ev.netlab.zetabits.com>から
>そうです。で、
>
>  * いつも配列を返す
>  * qsortをいじって変更されたかどうかを真面目にチェックする
>
>のいずれに進むべきか「まだ」決めていないということです。

array.c を見ると

1. いつも配列を返す
	collect!
	slice!

2. 真面目にチェックする
2a. 実行後のsizeをチェック
	reject!
	uniq!
	compact!

2b. 変更があったらフラグを立てる(立たなければnil)
	flatten!
	
3. size <= 1 のときにnilを返す
	reverse!
	sort!
-----

slice!は2aでもいいような気がしますが(現行そうなってないのが変?)、
reverse!やsort!やcollect!は真面目にチェックするにはコストが高すぎると
思います。これまでとの互換性を考えなくてよいのであれば、変更があったか
どうかの判断は呼び出し元にまかせて、常に配列を返したほうがよいのではな
いでしょうか。

-- 
UENO Kazuaki mailto:kazu@a-u.net
MSN Messenger: kazuau@hotmail.com

In This Thread

Prev Next