アカウント名:
パスワード:
# gem update --systemUpdating RubyGems...Updating metadata for 26 gems from http://gems.rubyforge.org/ [rubyforge.org]..........................completeAttempting remote update of rubygems-updateSuccessfully installed rubygems-update-1.0.11 gem installedUpdating version of RubyGems to 1.0.1Installing RubyGems 1.0.1setup.rb:12:in `<main>': uninitialized constant Config (NameError)
それでも、実際には一番新しいstableリリースである1.8.6-p111ではなくて、一番下にある1.8.6-p36をダウンロードしちまう輩は必ずいる。
One-Click Ruby Installer [rubyforge.org]ユーザーなのでその手の話とは無関係なAC
- m18n。
- Hashが順序を保持。
へー、どういう実装になっているんだろ。
[ruby-dev:24570] [nagaokaut.ac.jp] (と、 #1272878 [srad.jp] で紹介されている [ruby-list:43896] [nagaokaut.ac.jp] を含むスレッド) を読むと、ハッシュテーブルの各エントリーに、追加順で次のエントリーと前のエントリーへのポインターを付けて、二重リンクリストにしてあるようです。キーによる問合せをしたい場合はハッシュテーブルとして使い、要素を列挙したい場合はリストとして使います。
この方法だと、当然ながら、必要な領域の増分は 1 要素あたり定数、追加や削除に必要な時間の増分は 1 操作あたり定数、列挙は 1 要素ごとに定数時間でできます。削除が不要な場合は、追加順を保持しない通常のハッシュテーブルのほかに追加順を保持するためだけの配列なりリストなりを持つことが多いと思いますが、この方法に比べて Ruby で採用している方法には削除も速いという利点があります。
# Ruby はほとんど使っていません。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
rake, gem (スコア:2, 参考になる)
- rakeとgemが標準付属。
- Enumerable強化。enumerator組み込み。
- m18n。
- Hashが順序を保持。
あたりが大きい。
あと、何も知らずに1.9.0でRubyデビューしていらん苦労をする人が続出しそうなのが(ちょっと前から散見される)怖いな。
Re:rake, gem (スコア:4, 参考になる)
まず,zlibが添付されていないので,zlibを入れていないとzlib.dllがありませんエラーがでます.
http://www.zlib.net/ [zlib.net]からコンパイル済みzlib.dllを落として,
パスの通ったところにファイルを置きます(ファイル名がzlib1.dllになっているので,zlib.dllにリネーム).
これでgemは動くようになるのですが,そのままgem install hogehogeすると,
ダウンロード先,インストール先がなぜかC:\LANの下になります.
これは,ruby\lib\ruby\1.9.0\i386-mswin32のrbconfig.rbファイル内で,
あと,結局最後まで直らなかったのですが,gem update --systemがエラーで止まります.
一応rbconfig.rb内で,Config = RbConfigとやってはいるようですが,
なんでエラーになっているかはさっぱり分かりません...
Re:rake, gem (スコア:3, 参考になる)
ちょっと前まではRuby公式から「ダウンロード」でたどれるWindows版Rubyバイナリのページ [ruby-lang.org]が
現在はunstableというディレクトリが掘られてるので今後は少なくなるような気がします
Re:rake, gem (スコア:1, 参考になる)
それでも、実際には一番新しいstableリリースである1.8.6-p111ではなくて、一番下にある1.8.6-p36をダウンロードしちまう輩は必ずいる。
One-Click Ruby Installer [rubyforge.org]ユーザーなのでその手の話とは無関係なAC
Re:rake, gem (スコア:1)
と昨日インストールするときに勘違いしてしまいましたよ。
Re:rake, gem (スコア:1)
# ついでに l10n (localization)
Hashが順序を保持 (スコア:1, 参考になる)
Re:Hashが順序を保持 (スコア:2, 参考になる)
o preserving item insertion order
となってますので,Hashは公式に作成順序を覚えるようになったみたいですね。
Re:Hashが順序を保持 (スコア:1)
>別クラスにした方がよくね?
マニュアルのほうを書き換えてしまったほうが早いでしょう。
「rubyのHashは順序情報付き連想配列です。」と。
Hashの取り出し順序が予測不能である事に依存したコードを書いている人が居ない限り問題ないですよね。
Lv5以下の社員全員にデスマーチ!
Re: (スコア:0)
Hashの管理範囲から外れてるような。
別クラスにした方がよくね?
Re:Hashが順序を保持 (スコア:2, すばらしい洞察)
何かの都合で1.9より前のRubyで動かすときにハマる恐れが高い。
そういう心配をしなくていいくらい月日が経ってからじゃないと、結局
このことはどうでも良いことではないだろうか。
まぁ、デバッグとかするときに、少々加えた順序がわかって役立つかも
しれない。
Re: (スコア:0)
むしろこれが期待できるとエクセルを読み込んだとき{"sheet1"=>0,"sheet2"=>1,...}てなhashを作る必要なくなるからうれしい。
Re:Hashが順序を保持 (スコア:1, すばらしい洞察)
Re: (スコア:0)
DelphiのTStringsを思い出してしまったぜ・・・。
# というか、この辺はまつもとさんの感覚のみか
Re: (スコア:0)
俺はPHPのarray関係のうんこ関数群を連想して、
ゲロがでそうになった。
Re: (スコア:0)
までの流れを見る限り、CRuby(とJRuby)という「特定のRuby(言語)実装におけるHashではたまたま順序が保持されるようになった」だけという認識でいたほうがよさそうですね。
言語仕様としては定めていない、と。(というかまともな言語仕様ないし)
順序付きHash (スコア:0)
ある程度互換性はあきらめてるみたいだし。
Re: (スコア:0)
についてもう少し知りたい。キーの順序を保持?
連想配列の実装が二分木になったとか、そういう話ですか?
Re: (スコア:0)
Re: (スコア:0)
要素の追加順序を保持するHashクラス (スコア:1)
[ruby-dev:24570] [nagaokaut.ac.jp] (と、 #1272878 [srad.jp] で紹介されている [ruby-list:43896] [nagaokaut.ac.jp] を含むスレッド) を読むと、ハッシュテーブルの各エントリーに、追加順で次のエントリーと前のエントリーへのポインターを付けて、二重リンクリストにしてあるようです。キーによる問合せをしたい場合はハッシュテーブルとして使い、要素を列挙したい場合はリストとして使います。
この方法だと、当然ながら、必要な領域の増分は 1 要素あたり定数、追加や削除に必要な時間の増分は 1 操作あたり定数、列挙は 1 要素ごとに定数時間でできます。削除が不要な場合は、追加順を保持しない通常のハッシュテーブルのほかに追加順を保持するためだけの配列なりリストなりを持つことが多いと思いますが、この方法に比べて Ruby で採用している方法には削除も速いという利点があります。
# Ruby はほとんど使っていません。