Haskell

SML版QuickCheck環境を構築する

Haskellには QuickCheck というテストフレームワークが存在します。 これは、テスト対象の関数の入力型が取りえる値をランダムに自動生成し、別に与えた性質(関数)を満たすかどうかをチェックしてくれるライブラリです。 指定された型の取りえる値の中からコ…

Boost.勉強会#9 つくばとHaskellDayに参加

土日にBoost.つくば(5/26)とHaskellDay(5/27)に参加してきました。(っていつの間にやらもう木曜日じゃなイカ…。) どっちにも登壇してないものの二日連続はやはりキツイものがありました。簡単に振り返っておきます。 Boost.勉強会#9 つくば 初つくばでした。…

関数プログラミングの楽しみ 練習問題用リポジトリ作った

https://github.com/eldesh/fun_of_programmingThe Fun of ProgrammingというHaskellの薄い本があります。和訳版として 関数プログラミングの楽しみ という本も出版されています (私が読んでるのはこっち…(^^))関数プログラミングの楽しみ作者: Jeremy…

SMLの演算子でセクションとbacktick notationを実現する

Haskellにはセクションという機能があって, ラムダ式を書かずに中置演算子を引数の片方のみに適用することが出来ます. Prelude> 5 - 2 3 Prelude> (-) 3 5 -2 Prelude> (7 -) 3 {- 左側に7を渡す -} 4 Prelude> (- 4) 8 {- 右側に4を渡す -} 4 これはSMLでは…

スタートClean、終わりました

開催が危ぶまれていた(?)スタートCleanですが, 無事, スタートとは名ばかりのウルトラなメンツでCleanを始めました! > togetterでのまとめはじめに主催者のoskimuraさんが, 主にHaskellとの違いからClean概説を発表. 途中, 事あるごとに話を振られましたが…

Boost.勉強会#4に行って来た

Boost.勉強会#4に行って来ました. 早くも4回目となりましたBoost.勉強会です. アキラさん相変わらずパワフルですね. お疲れ様でした.今回は午前開始にも関わらず遅刻しなかった!勝った! セッション セッション一覧 徐々に難易度が上がっております. より実…

Fusion Property of fold

foldつづき. Fusion Property 以下の形の等式を考えます. h o fold g w = fold f v これは一般に成り立つわけではありませんが、 成り立つ場合にはUniversal Propertyによって次のような表現と同等であると言えます. (h o fold g w) [] = v (h o fold g w) (x…

Universal Property of fold

foldにはパッと見では分からない便利な特性を持っています. その中でも(多分)かなり基本的な部類の性質を紹介します. (注意1) 記事中でのfoldは全てfold-rightです. (注意2) (o)は(.)です(点だと見づらいので) 一応foldの定義 fold f v [] = v fold f v (x:x…