No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

Groovyでケブンッリジ関数を

Server error
でお題になっていたのでやってみた。

私が投稿したのはこんな感じ。

source = """\
こんにちは みなさん おげんき ですか? わたしは げんき です。
この ぶんしょう は いぎりす の ケンブリッジ だいがく の けんきゅう の けっか
にんげん は もじ を にんしき する とき その さしいょ と さいご の もじさえ あっていれば
じゅんばん は めちゃくちゃ でも ちゃんと よめる という けんきゅう に もとづいて
わざと もじの じゅんばん を いれかえて あります。
どうです? ちゃんと よめちゃう でしょ?
ちゃんと よめたら はんのう よろしく
"""

println source.readLines()*.split(/\s+/).collect{
    it.collect{ it.size() <= 3 ? it : it.toList().with{
        it.first() +                                            // 最初
        it[1..-2].with{ Collections.shuffle(it); it.join() } + // 真ん中
        it.last()                                               // 最後
    } }.join(' ')
}.join('\n')

出力例


こちにんは みなさん おんげき でかす? わしたは げんき です。
この ぶしょんう は いりぎす の ケッンブリジ だがいく の けゅきんう の けっか
にんげん は もじ を にしんき する とき その さいしょ と さいご の もじさえ あれっいてば
じんばゅん は めくゃちちゃ でも ちんゃと よめる という けきんゅう に もいとづて
わざと もじの じばゅんん を いれえかて あります。
どうです? ちんゃと よゃめちう でしょ?
ちんゃと よためら はのんう よしろく

考察など

#withを使うと、変換し続けていけるから便利ですね。


面白いのでハイクとかで何かに使えないかな〜。