My Favorite Things - Coding or die.

とある技術者の経験記録、的な。

Haskell

Qiita記事「Haskell チュートリアル (Haskell Day 2016)」を読んでメモ

以下を読んでメモ。 Haskell チュートリアル (Haskell Day 2016) から学んだこと http://qiita.com/hiratara/items/169b5cb83b0adbfda764 Shell以降は新しいことばっかりだったのと、元記事の完成度が高すぎて途中からは殆ど写経みたいになってしまった。 基…

Haskell :: CSVフォーマッターを書いてみた

勉強がてら試しに書いてみた。 なんというか・・・以外と難しいね!! ちなみに全角文字に非対応なのでそのうち。

AtCoderに挑戦 - ACR001、ACR002 :: Haskell

関数プログラミング実践入門の巻末に載っていたAtCoderにHaskellで挑戦してみた。 001は、sortとgroupを活用すればすぐ出来ることが分かった。002は、すごいH本に載っていたチェス盤のナイトのコードを参考にして、リストモナドを使って解いてみた。実際にコ…

関数プログラミング実践入門 メモ - 第4章 評価戦略

関数プログラミング実践入門の4章「評価戦略」を読んだので簡単にメモ。 遅延評価(lazy evaluation) 実際に使うまで計算しないという計算順序の規則 たらい回し関数(竹内関数)は、積極評価だと実行に時間がかかり、遅延評価だとすぐ完了する関数(の例)…

Haskell :: mapとfilterをfoldrで実装してみた。

Functional Programming in Swift で 同様のコード例があったのでHaskellでも書いてみた。 関数プログラミング実践入門で、「筆者がfoldrの方が好きなので」的な記述があったけれど、consリストで畳み込むコードを考えると、確かにfoldrの方が自然に感じる気…

関数プログラミング実践入門 - ランレングス復号化を書いてみた

ランレングス圧縮が例題として載っていたので、練習がてら復号化を書いてみることに。とりあえず書けたのだが。 安全でないreadを使っているのはさておき、なんだろうこの微妙感は。追記(2016/05/05): `let`を活用することで少し読みやすくなった。冗長だ…