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


プログラミングHaskellHaskellの本だけに、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)

集合っぽい書き方ができるので、リスト内包表記は書くの好きかも。


ただ、長くなって行を分割するときに改行がうまく入れられなかった。
……そもそもそんなに長くなる時にリスト内包表記を使用するなって話かもしれませんが。