2/17 勉強メモ
プログラミングHaskell 5.5のシーザー暗号をHaskellで解いてみた。
https://github.com/a-hisame/FunctionalPractice/blob/prac5/prokell5.5.hs
および、5章の練習問題を解いてみた。
https://github.com/a-hisame/FunctionalPractice/blob/prac5/prac5.hs
プログラミングHaskellがHaskellの本だけに、Haskellの得意分野だからかもしれないけど、
Ocaml版と比較して短いなぁ。本当に。
(OCaml版ソースコード:https://github.com/a-hisame/FunctionalPractice/blob/prac5/prokell5.5.ml)
ほとんど、ライブラリの違いでしかない気もしますが。
リスト内包表記。
これ、まんまScalaのfor式っぽい。
ってことはListモナドってことでいいのかな?
-- Haskell [(x, y) | x <- [1..10], y <- [x..10]] // Scala for(x <- 1 to 10; y <- x to 10) yield (x, y)
集合っぽい書き方ができるので、リスト内包表記は書くの好きかも。
ただ、長くなって行を分割するときに改行がうまく入れられなかった。
……そもそもそんなに長くなる時にリスト内包表記を使用するなって話かもしれませんが。