【激突】関数型言語 VS オブジェクト指向言語2at TECH【激突】関数型言語 VS オブジェクト指向言語2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト185:営利利用に関するLR審議中@詳細は自治スレへ 12/04/10 13:06:13.85 セマンティクスとしては x の評価を 2 度する、というのは変わらんじゃないのかな。 その評価が状態に対して idempotent かどうかという違いであって。 186:営利利用に関するLR審議中@詳細は自治スレへ 12/04/10 13:08:03.10 (誤爆w) 187:営利利用に関するLR審議中@詳細は自治スレへ 12/04/10 23:37:56.20 >>183 自分はHaskellのリバース関数が自然だと感じて入門当時は感動したな reverse [] = [] reverse (x:xs) = reverse xs ++ [x] もちろん、組込み関数のreverseは速度重視の直感的ではないコードなんだが・・・ 188:営利利用に関するLR審議中@詳細は自治スレへ 12/04/11 01:26:37.69 >>187 演算子とコンストラクタの違いが直感的に分からない 英単語だったら先頭が大文字かどうかで分かるんだが 189:営利利用に関するLR審議中@詳細は自治スレへ 12/04/11 03:24:43.28 >>188 コ、コンストラクタ!? Haskellを例に出した私にレスされましても・・・ クラスの生成時に呼び出すメソッドと演算子に直感的な違いも何も無いと思いますが・・・ Cons演算子のことでしたら、リストという構造に対する演算子だと理解しておけば良いと思います [1,2,3] = 1:[2.3] = 1:2:[3] = 1:2:3:[] 関数の引数にリストの全部の要素を書きたければ(要素数固定になりますが)書けますよ sum3 (x:y:z:[]) = x+y+z (x:xs)の部分の理解はghci上で let (x:xs) = [1..5] とかしてxとxsの値を調べると良いです リストを引数に取る時の表記は、Haskellの中では特別な表記法と言う訳ではないです +演算子もこう言う書き方は出来ま・・・廃止になったけど、ちょっと前までは出来たんです dec (n + 1) = n 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch