[過去ログ]
関数型プログラミング言語Haskell Part33 (1002レス)
関数型プログラミング言語Haskell Part33 http://mevius.5ch.net/test/read.cgi/tech/1581326256/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
534: デフォルトの名無しさん [sage] 2020/11/01(日) 08:58:44.92 ID:Srz4hpJo 1) http://walk.northcol.org/haskell/operators/#_%E4%B8%AD%E7%BD%AE%E3%81%A8%E5%89%8D%E7%BD%AE%E3%81%AE%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88 2) このままだと対応する値が存在しないので、少し書き換える map' f xs = foldr (\x a -> f x : a) [] xs xはxsの各要素、aは最後の要素では[]で、 それ以前は後ろの要素に(\x a -> f x : a)を適用した結果 http://mevius.5ch.net/test/read.cgi/tech/1581326256/534
537: デフォルトの名無しさん [sage] 2020/11/01(日) 10:21:30.53 ID:Srz4hpJo 1) foldr + 0 [1,2,3] と書いた場合、「+」より関数適用のほうが優先順位が高いので、 foldr + (0 [1,2,3]) と解釈される。 つまり、0という関数を[1,2,3]という引数に適用したものと、foldrを足し算するという意味となる 2) 具体例 map' f [1,2,3] = foldr (\x a -> f x : a) [1,2,3] 3番目の値 (\x a -> f x : a) 3 [] = f 3 : [] = [f 3] 2番目の値 (\x a -> f x : a) 2 [f 3] = f 2 : [f 3] = [f 2, f 3] 1番目の値 (\x a -> f x : a) 1 [f 2, f 3] = f 1 : [f 2, f 3] = [f 1, f 2, f 3] http://mevius.5ch.net/test/read.cgi/tech/1581326256/537
538: デフォルトの名無しさん [sage] 2020/11/01(日) 10:25:40.23 ID:Srz4hpJo おっと、具体例の「foldr (\x a -> f x : a) [1,2,3]」は 「foldr (\x a -> f x : a) [] [1,2,3]」の誤り http://mevius.5ch.net/test/read.cgi/tech/1581326256/538
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.040s