Twitter: @kinaba
soutaroさんの 正規表現にマッチする例をランダム生成 する話を見てたら、 自分でも書きたくなってきました。というわけでソース。 正規表現を構文解析してオートマトンに コンパイルしてから、その上を似非ランダムウォークしてます。対応してる正規表現は ?と+と*と|と.と[…]だけです。[…]の中の-とか^とかにも反応しません。あと IE と Rhino でしかチェックしてないので他の環境で動かなかったらゴメンナサイ。 きっともっとマトモなのをsoutaroさんが公開されるはずです。
ボタンを押したらこの上↑に10個例が生成されるはず。
で、動かしてみて思ったのは、当たり前だけど繰り返しが長続きしないなー、と。 確かに、ループをちゃんと意識しないと面白い結果にならないかもしれないですね。 なるほど。
ぎゃーす! ご指摘 & ご指摘 ありがとうございます。"a*" から空文字列が生成されないバグ対処しました。 「似非ランダムウォーク」の「似非」が問題で、ε遷移と通常の遷移を必ず交互に試す動作に なってたのが原因です。(まず、始状態を1個にまとめるためのダミー始状態からa*の先頭へのε遷移 をたどるので、次には必ず文字"a"を喰う遷移を辿ってしまう。)とりあえずは、その辺にもう1段 乱択をいれるという場当たり的なごまかしを入れておきました。
あとついでに、多少長いループがでやすくなるように、 終状態から遠ざかるε遷移の本数を6倍に増やしてみましたがあまり変わってないような。
テナで捕捉してるかというと、 おもしろいと私が感じるネタが定期的に読めるから、ですね。最近だと あれ とか それ とか、 あと本の感想はだいたい全部楽しく読んでいます。和風Wizを知ったのも これ のおかげですし。 あと実は、Diaryよりもさらに Bookmark の方が好きかもしれません。 sshiさんのクリップした記事は自分にとっても興味が持てることがかなり多くて。 日記読んだら毎回"Hatena::Diary"のロゴの横の△を押してます。
この前の土曜日に、 東京23区全部に足を踏み入れルート などというものを歩いてみました。
自分の考えたルートは50km程度だと思うんですけど、出発点も終点も自由として、 最短ルートはどのくらいになるんだろう。TSPを酷くした問題なのは明らかなので 解ける気はまったくしないですが、思考実験。
Erlangの話 が72usersになってて午後の紅茶吹いた私です。
だいぶ昔に書いた記事なので、まず関数型言語とはなんぞや的な説明をするだけで1ヶ月が 終わっちゃってるんですけど、どうなんだろ。Haskellとかが流行ってる今時にErlangを触ろうという 言語オタクなら多分末尾再帰とか代入がないよーとか常識以前な気がするので恐縮です。 パターンマッチ(というか変数束縛)のsemanticsは論理型言語寄りでなかなか面白いと思うけども。 誰か、もっとErlangはプロセスが並列がメッセージが…という紹介を書いてくれんかなあ。