[過去ログ]
関数型プログラミング言語Haskell Part32 (1002レス)
関数型プログラミング言語Haskell Part32 http://mevius.5ch.net/test/read.cgi/tech/1548720347/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
175: デフォルトの名無しさん [sage] 2019/02/23(土) 00:41:48.52 ID:RiBir1w3 カリー化関数の意図がわからん sum_of :: (Integer -> Integer, Integer, Integer) -> Integer sum_of (f, n, m) | n > m = 0 | otherwise = f n + sum_of (f, n + 1, m) これはわかる sum_of' :: (Integer -> Integer) -> Integer -> Integer -> Integer sum_of' f n m | n > m = 0 | otherwise = f n + sum_of' f (n + 1) m どう見ても書き換えただけにしか見えないんだけどこれ意味あって書いてるのかな カリー化って引数可変で動作する関数を定義するためのものって理解したけど 後者にはそんな意図が含まれてるように見えない http://mevius.5ch.net/test/read.cgi/tech/1548720347/175
176: デフォルトの名無しさん [sage] 2019/02/23(土) 02:34:37.24 ID:hS0A7KKk >>175 やってるのは数式で書くと Σ[i=n..m] f(i) か 再帰をちょっと具体的に書き下さないと何のsumかわからんかった それで多分やりたいのは こういう風に個別の総和関数が手軽に作れますよみたいな話だと思う タプルで定義されてるとこういう風にはいかない (書けないことはないけどめんどくさい) sumOfTwice :: Integer -> Integer -> Integer sumOfTwice = sum_of (*2) ここで(*2)とかできるのも (*) :: Integer -> Integer -> Integer がカリー化されてるおかげ こういうのを部分適用と言って可変長引数とは異なる概念 http://mevius.5ch.net/test/read.cgi/tech/1548720347/176
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.041s