タグ

2012年12月16日のブックマーク (4件)

  • Introduction to QuickCheck2 - HaskellWiki

    A quick introduction to QuickCheck2, and testing Haskell code. -- I've written a function that looks similar to this one getList = find 5 where find 0 = return [] find n = do ch <- getChar if ch `elem` ['a'..'e'] then do tl <- find (n-1) return (ch : tl) else find n -- I want to test this function, without hitting the filesystem. In C++ I -- would use a istringstream. I couldn't find a function th

  • DB batch job by Haskell

    BATCH.md HaskellでDBバッチ処理 概要 これは Haskell Advent Calendar 2012 の11日目の記事、その2です。 Haskell で DBを使うバッチ処理を書くための記事です。 基的な文法を把握したらバッチ処理を書くのは簡単だと示すのが目的です。 主な対象読者は プログラミングHaskell か すごいHaskellたのしく学ぼう! を読み、Haskell をより使いたい人です。 バッチ処理の概要 DB定義 persistentパッケージ を使ったDB定義の方法は Haskellで便利にデータ設計 を読んでください。 今回使うDB定義は以下です。 share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persist| Person name Text age Int sex Sex NumPe

    DB batch job by Haskell
  • Haskellで便利にデータ設計

    persistent.md Haskellで便利にデータ設計 概要 これは Haskell Advent Calendar 2012 の11日目の記事です。 Haskell でデータ設計を便利に行う発想・方法について書きました。 persistent というライブラリを活用します。 Haskell を知らなくても読めます。 主な対象読者は プログラミングHaskell か すごいHaskellたのしく学ぼう! を読み、Haskell をより使いたい人です。 persistent の概要 いわゆる「ORマッパー」の機能を持つライブラリです。 データ設計を記述するという準備をすれば、 DBのデータ出し入れをよろしくやってくれます。つまり データ型を作ったら insert関数に渡せば、はい、DBレコードが追加されます select系関数で取り出したデータには対応する型が付いて安全に使えます RD

    Haskellで便利にデータ設計
    igrep
    igrep 2012/12/16
    なるほど便利
  • Freeモナドって何なのさっ!? - capriccioso String Creating(Object something){ return My.Expression(something); }

    最近Haskellerの間でFreeモナドが熱いです。 Haskellで悟りを開いた人がFreeモナドで再び悟りを開いたりして、なんかよく解らないけど凄いことになっている今日このごろですが、すっかり乗り遅れていました。どうも、貴女のちゅーんです。 で、皆こぞって「すごいすごい」と言っているFreeモナドなので、流石にいつもまでも全然知らないのはマズイんじゃないかなぁとか思って、重い腰を持ち上げ調べながらこの記事を書き始めたワケですよ。はい。*1 けっこう急ぎで勉強して書き上げたので随所に間違いあるかもです。ツッコミお待ちしてます。 さて、この「Freeモナド」について、オレオレ定義で簡単に言葉にすると。「Functorと組み合わせて様々な挙動を実現できるモナド」です。 大抵「Monadのインスタンス」というと、MaybeにしてもIOにしても、わりと具体的な事象を扱ってますが、このFreeモ

    Freeモナドって何なのさっ!? - capriccioso String Creating(Object something){ return My.Expression(something); }
    igrep
    igrep 2012/12/16
    後で読むっ!