【激突】関数型言語 VS オブジェクト指向言語2at TECH【激突】関数型言語 VS オブジェクト指向言語2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト529:デフォルトの名無しさん 12/04/25 16:37:33.03 C++にはpure virtual function callというのがあって、仮想関数がnullを持つ。 値型でも仮想関数があったら元も子もない。 仮想関数をやめてswitchを使う覚悟がないと厳しい。 関数型言語のパターンマッチはswitchと同じ方式だ。 530:デフォルトの名無しさん 12/04/25 16:43:26.43 >>528 関数型言語はむしろ全てが参照型とも言えるんだが 531:デフォルトの名無しさん 12/04/25 17:35:29.26 >>525 Squeak Smalltalk (4.2-ja w/CogVM), 1.8GHz Core i7で5分弱。 life := [:ary2d | | sum survivs | sum := ary2d * 0. #(-1 0 1) do: [:dx | #(-1 0 1) do: [:dy | sum := sum + ((ary2d collect: [:row | row flipRotated: dx*2]) flipRotated: dy*2)]]. survivs := #(3 4) collect: [:alive | sum collect: [:row | row collect: [:cell | (cell = alive) asBit]]]. survivs first + (survivs second * ary2d)]. life value: #( (0 1 1 1 0) (0 1 0 0 0) (0 0 1 0 0) (0 0 0 0 0) (0 0 0 0 0)). "=> #( (0 1 1 0 0) (0 1 0 1 0) (0 0 0 0 0) (0 0 0 0 0) (0 0 1 0 0)) " cells := (1 to: 500) collect: [:row | (1 to: 500) collect: [:cell | #(0 1) atRandom]]. [500 timesRepeat: [cells := life value: cells]] timeToRun "=> 267282(msec) " 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch