2012-05-13から1日間の記事一覧

QuickCheck で特定の文字からなるランダムな文字列の生成

DFA/NFA のテストとして、特定の文字からなるランダムな文字列をテストデータとしたい。例えば、アルファベットが文字 a と b のみからなるDFAに対しては、"a", "ab", "aaaababa" などの文字列を生成したい。 しばらく方法が分からず悩んでいたが以下のよう…

Haskell でオートマトン Data.Set + Transition 版

"Regular Expressions and Automata using Haskell" を参考に、データ構造を変更した。具体的にはオートマトンの遷移関数を Haskell の関数にするのを止め、状態遷移の集合とした。 data Labelled a b = Labelled a b a deriving (Eq, Ord) data Epsilon a =…