[過去ログ] 関数型プログラミング言語Haskell Part32 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
510(5): 2019/10/08(火)21:32 ID:nLwShu/0(1/3) AAS
何冊か本を読んだけど、Haskell の気持ちがなかなか分からん…
525(2): 2019/10/12(土)00:29 ID:mt88ZJv+(1) AAS
>>510
mylist 3 = [[1,2,3],[4,5,6],[7,8,9]]
みたいなリストを作る関数をHaskellで作ってみれば関数脳に目覚める。
割とマジで。
Haskell入門以前って電子書籍で書いたが、自力で目覚めるなら買わなくても良い。
(Haskell入門書読んでも宣言的とは?関数脳とは?がピンと来なかった経験から書いた)
527(1): 2019/10/12(土)01:48 ID:gzpbrH7N(1/3) AAS
>>525
コメントありがとうございます!
>>510です
ひねりなしですが…
mylist :: Int -> [[Int]]
mylist n = chop n [1..n^2]
chop :: Int -> [a] -> [[a]]
chop _ [] = []
chop n xs = take n xs : chop n (drop n xs)
chop は、直近に読んだ書籍からそのままアイデアを拝借しましたが、カンニングなしで書きました
省2
530(1): 2019/10/12(土)02:25 ID:gzpbrH7N(2/3) AAS
>>528
>>510です
では、
mylist :: Int -> [[Int]]
mylist n = take n (chop n [1..])
531: 2019/10/12(土)02:33 ID:gzpbrH7N(3/3) AAS
>>528
>>510です
コメントをつけ忘れましたが、ご紹介いだいた圏論のレポートは、以前にちょっと目を通したことがあったと思いますが、サッパリだった記憶が…
あらためて拝見します
ありがとうございます!
533(1): 2019/10/12(土)11:27 ID:/Y14moqf(1/3) AAS
>>510 です
mylist n = take n $ f [[1..n]]
where
f [ns] = ns : f [g ns]
g ns = map (+3) ns
としたところで、要素に f を繰り返し適用して無限リストを作る関数があることを思い出し、思い出せずにカンニングして iterate を発見
mylist n = take n $ iterate f [1..n]
where
f ns = map (+n) ns
map (+n) 辺りがどうも…
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.033s