[過去ログ] 雑 談 専 用 ス ッ ド レ ★ 25 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
498(1): 2014/04/25(金)07:10 ID:5vjeFuFfI(16/47) AAS
>>496
> そもそも読みづらいというわけではないよ。
読みづらいか読みづらくないかというのは、主観に依存する。
小学生にとっては「りんごが3個」とかの方が、「x=3」よりも読みやすいだろう。
また用途にもよる。なんでプログラミング言語がたくさんあるかといえば、
用途によって適不適があるからだ。
その中で手続き型言語というのは、可もなく不可もなく、
どんない用途にも、そこそこ書ける。
くせのある言語だと、特定の用途にはすばらしい使いやすさを発揮するが、
向いていない用途は、まったく使いものにならないほど。
> むしろ言語自体の理解が進めばすっきりしたコードで保守しやすい。
ということで、プログラマの言語の理解度の問題ではなく、言語の用途の問題。
> あと遅いというのはうそだな。
自分で引用している文章を読んでないか、そもそも読む能力がないのかしらんが、
なぜこのベンチマークでhaskellが異常に速いのか、ちゃんと理由が書かれている。
それが「遅延評価」。遅延評価というのは関数型言語の大きな特徴。
(まあ最近では手続き型言語でも部分的に導入されているけど、本家本元は関数言語)。
簡単にいえば、読んで名のごとく、必要になるまで実行しない(実行を保留(遅延)しておく)。
手続き型言語の場合、「足し算をしろ」と指示すれば、基本的にその時点で
足し算が実行される。しかし関数型言語では、足し算の結果が本当に必要になるまで、
足し算は実行されない。
まあ手続き型言語でもコンパイラの最適化で、ある程度演算の順序を変えたりするけど、
あまりダイナミックにはできない。それは関数型言語は副作用がないという特徴をもって
いるから。ただこの辺は難しすぎるので省略。
んで、ベンチマークプログラムのように、無意味な処理をさせるプログラムだと、
この遅延評価が働いてしまって、そもそも処理が行われないことがある。
結果が必要ないと判断され、結果が必要ないならそもそも計算する必要ない、と判断し
計算が実行されない。
通常のプログラムなら、不要な処理は省いてくれた方が好都合なのだが、
ベンチマークの場合それじゃ困るわけだ。つまりこの結果は「処理速度を比較する」という
本来の目的を正しく示していない。
ま、ひとことでいえば、このベンチマーク結果を持って、haskellの処理速度を
他の言語と比べることが無意味。
上下前次1-新書関写板覧索設栞歴
あと 504 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.011s