- 976 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 12:35:55.44 ]
- >>967
実践はともかく、プログラミングの学習においては、基本的な関数を自作するのは重要だと思う それはともかく、Haskellと比較用にRubyでlength関数作ろうとしたら配列はeachメソッドで各要素にアクセスできるが、文字列はeachは行単位で、文字単位にはeach_charを使わないといけないのが分かったんだが、それだと配列と文字列で別々にlength関数作らんといかんの? ダックタイピング出来るのがLLの利点じゃなかったのかと言いたい (しかも、1.9からは文字列のeachも廃止になるのでeachの構文糖衣であるfor文が文字列で使えない) 以下のコードは配列だと正しい結果を返すが、文字列だと1.8系だと正しくない結果を返し、1.9系だとエラーになる(eachメソッドが無いぞゴラァ!と怒られる) def mylength (str) sum = 0 for i in str sum += 1 end return sum end Ruby詳しくないとは言え、この動作がおかしいのだけは理解できる
|

|