[過去ログ] 関数型プログラミング言語Haskell Part32 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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.042s