«前の日記(2007-07-17) 最新 次の日記(2007-10-28)» 編集
2002|09|
2003|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|10|11|
2008|01|

ひ日誌


2007-08-23  ( ja -> en )

_ [ruby] Hashリテラルは書いた順序で繰り返して欲しいよ派に転じた

ruby-listで話題になってたHashへの生成順は保障されないのか?について、どちらかというと「Hashなのに順序があるのには違和感あるよ派」だったんだけど、きのうのSICP読書会の会場を提供していただいたささださんと話してたら

  • そもそもArrayだってArrayじゃないよ
  • Arrayなのに両端キュー(deque)とおなじことができるよ
  • だったらHashだけど順序があったていいじゃん
  • Rubyは何でもありなんだよ。それがRubyなんだよ

と説得?された。それもそうだなぁ。その気になれば他にいくらでも突っ込みどころがありそうな雰囲気がなくもないのだから、Hashの意味にだけこだわってもしょうがないような気はする。さらに、MLで上がっていたHashのリテラル表記

{ KEY1 => VAL1, KEY2 => VAL2, ... }

は明らかに順序が見えるのだからそのとおりに繰り返すのは自然、実装はHashじゃなくてもいいじゃん、という考えにはとても説得力がある。このリテラル表記どおりに繰り返してくれると Objective-C のメッセージ送信にそのまま使えるので、RubyCocoa プロジェクトの立場から見てとてもポイントが高い。

railsプログラミングでも多用されてるキーワード引数がわりのHashリテラル。キーワード引数的な用途だと、要素数は少なめでしかもすべての要素を見ることになりそう。だったらHashよりも小さそうなデータ構造(配列とか木とか単純なリストとか)でもいいんじゃないかなという気すらしてきた。

ところで、ささださんがIPA未踏ソフトウェア創造事業2006年度下期千葉PM採択プロジェクト最終成果報告会で「Ruby 1.9 〜これからの Ruby〜」というタイトルで講演されるそうです。「エンタープライズの現場としての Ruby」とか「これからの Ruby」に興味のある方はお見逃しなく。

(おまけ) 自分はというと、エンタープライズと聞いてウェアラブルコンピューティングの人の付けてる眼鏡(視点センサー?)がボーグっぽい…という連想をしてしまうダメ人間。

本日のツッコミ(全3件) [ツッコミを入れる]
_ とおる。 (2007-09-14 03:57)

えっと、そのお話には参加していませんが、dequeue じゃなくて deque(両端キュー)じゃないですか?

_ hisa (2007-09-15 18:49)

コメントどうもです。そのとおりです。スペルがごっちゃになってました。キューから取り出す操作(dequeue)のことじゃなくて、「Arrayは両端から出し入れ可能だよ」ということです。

_ きむら(K) (2007-09-17 17:36)

えっと、「デク」はdeque/dequeueどちらのスペリングも可だったと思います
http://en.wikipedia.org/wiki/Dequeue
↑この辺参照
#ただしqueから要素を取り出すのもdequeueなそうなので
#あまり良くはないのかもしれません。
#wikipediaも deque のが commonly だとかあるし


«前の日記(2007-07-17) 最新 次の日記(2007-10-28)» 編集