Gauche > Archives > 2018/05/15

2018/05/15 04:36:54 UTCshiro
#
何となく気が向いたので与えられたregexpからそれに受理される文字列を生成し続けるジェネレータを作るやつを書いてみた。実用性があるかどうかはわからない。
#
gosh> ,u data.random
gosh> ,u gauche.generator
gosh> (generator->list (regular-strings$ #/[[:alpha:]]\w+/) 10)
("Tn" "Jj" "faS6S" "Rah" "B3" "lp" "L0zbb" "ARI" "fP2yE5" "gCW")
gosh> (generator->list (regular-strings$ #/[[:alpha:]]\w+/) 10)
("eTr" "jA4w" "yZ" "UJ6gR" "GbpA" "UGe" "QQ" "KY" "J1" "rlwt")
gosh> (generator->list (regular-strings$ #/[[:alpha:]]\w{3,7}/) 10)
("fivKZWxq" "UkHY" "eMxH" "cH8I" "I40zlC0o" "Khhi" "ob4veu" "scSK4J" "Qeia" "OsZT7")
gosh> (generator->list (regular-strings$ #/[_[:alpha:]][\w_]{3,7}/) 10)
("kqki" "MlGVW" "W61RCt" "ZJZW" "v8FbY" "KEw4" "PgAs" "gnIcrnBt" "tXKntK" "FHEd0")
gosh> (generator->list (regular-strings$ #/[_[:alpha:]][\w_]{3,7}/) 10)
("SrJ0W" "WUDgGF" "IKDW" "kPM4" "NxFF" "_hI9zG" "yVP3Hu" "Mf9XS" "cFafkEi" "TTcy")
#
条件分岐とかアサーションはサポートしてない。あと繰り返しは「繰り返す/繰り返さない」wo
#
を半々の確率で遷移してるんだけどそれだと長いのが出てこないので回数を先に幾何分布あたりで決めちゃった方がいいだろうか
2018/05/15 07:20:50 UTCtakeoka@twitter
#
The latest デイリー たけおか (Shozo Takeoka)! https://t.co/GDTovLBgz7 Thanks to @kjumpei @isoparametric #hpc #新着