2010-01-01から1ヶ月間の記事一覧
要約:素数判定に使われるミラーラビン法を解説しながら、Haskell で実装してみる。 フェルマーテスト 大きな数を確実に素数だと判定するには、大変時間がかかるので、実用的には「ほぼ素数だ」と確率的に判定する。確率的な素数判定の代表格がフェルマーテ…
IIJ 社内でやったチュートリアル 純粋関数型言語Haskellの紹介 〜制約プログラミングのススメ〜 の資料を公開しました。
正規表現を超えるの補足として、CSVファイルを例に挙げて考えてみる。CSVファイルの定義は、RFC4180にある。 file = record *(CRLF record) [CRLF] record = field *(COMMA field) field = (escaped / non-escaped) escaped = DQUOTE *(TEXTDATA / COMMA / C…
Parsec には以下のようなコンビネーターが存在する。 many p -- p を 0 回以上 many1 p -- p を 1 回以上 count n p -- p を n 回 しかし、正規表現の"{min,max}"のような範囲指定はない。そこで実装してみた。 import ApplicativeParsec range :: Int -> In…