ズンドコキヨシ with Perl6

こんばんは :whale2: 

今日は、はやりの`(?:ズンドコ|キヨシ)チェック`をPerl6で書いてみます。

# ソース

```pl:kiyoshi.pl6
use v6;

my Str constant @words = < ズン ドコ >;
my Str constant @beat = < ズン ズン ズン ズン ドコ >;
my Str @cache;

loop {
  LAST {
    say 'キ・ヨ・シ!';
  }

  print my $word = @words.pick;
  @cache.push: $word;
  @cache.shift while @cache > @beat;

  last if @cache eq @beat;
}
```

```bash:出力例
$ perl6 kiyoshi.pl6
ズンドコドコズンズンドコズンズンドコズンドコドコズンズンズンズンドコキ・ヨ・シ!
```

おわりです　（キ・ヨ・シ!） :microphone: 

# あわせて読みたい

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Javaの講義、試験が「自作関数を作り記述しなさい」って問題だったから<br>「ズン」「ドコ」のいずれかをランダムで出力し続けて「ズン」「ズン」「ズン」「ズン」「ドコ」の配列が出たら「キ・ヨ・シ！」って出力した後終了って関数作ったら満点で単位貰ってた</p>&mdash; てくも (@kumiromilk) <a href="https://twitter.com/kumiromilk/status/707437861881180160">2016, 3月 9</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>



| 言語 | リンク |
|:-----------|:------------|
| Python, Ruby, Lua | [ズンドコキヨシ with python / ruby / Lua](http://qiita.com/y__sama/items/7c451dfd706f9b36729d) |
| Brainfuck | [ズンドコキヨシ with Brainf**k](http://qiita.com/angel_p_57/items/35eabfa66b95e5b44e4b) |
| C# | [例のキヨシチェックを Sprache で書いてみる](http://qiita.com/fum1h1ro/items/98fae35ef475cba7462c) |
| C# | [例のキヨシチェックを Enumerator を使ってスマートに書いてみましょう](http://qiita.com/beinteractive/items/a2264048a601ee998aca) |
| Clojure | [ズンドコキヨシ with Clojure](http://qiita.com/woxtu/items/b562d70eff64bc50eee5) |
| Elixir | [ズンドコキヨシ with Elixir](http://qiita.com/tuvistavie/items/baa4065142769c3403a3) |
| Elixir | [ズンドコキヨシ with Elixir(二番煎じ)](http://qiita.com/ak-ymst/items/9df06caa1e94854f6172) |
| Go | [ズンドコキヨシ with Go](http://qiita.com/syossan27/items/d5fdb5aee98e81a7902c) |
| Go | [ズンドコキヨシ with Go (n番煎じ)](http://qiita.com/shinderuman@github/items/2ff67c2404647d2b7ea6) |
| Haskell | [ズンドコキヨシ with Haskell](http://qiita.com/fujimura/items/52ded074c97b2f1327ec) |
| Java | [ズンドコチェック](http://qiita.com/shinido/items/f9d99f338e9cc0885801) |
| Java | [例のキヨシチェックを java で](http://qiita.com/or_die/items/eb971fbd92e7610c01c3) |
| Java | [Java8 Stream でズンドコ](http://qiita.com/heignamerican/items/3dbab0e8791df12dc529) |
| JavaScript | [ズンドコキヨシ with JavaScript (Node.js)](http://qiita.com/LightSpeedC/items/ac857a0e313275c0cb1a) |
| JavaScript | [ズンドコキヨシ with JavaScript](http://qiita.com/liburari/items/432fd0f6e31d7367ad73) |
| Kotlin | [Kotlinで流行りのズンドコキヨシを日本語順通りに作りたかった](http://qiita.com/MeilCli/items/135e85b2de2146c64891) |
| Perl | [ズンドコキヨシ with Perl](http://qiita.com/shimx/items/51da4b56bca1ac2cb269) |
| Perl6 | [ズンドコキヨシ with Perl6 gather/take編](http://qiita.com/mattn/items/ed7ffd6f8851a8fbc2a8) |
| PHP | [Functoolsで過剰にスマートなPHPを書こう (無名再帰篇)](http://qiita.com/tadsan/items/6b8cc35ff9ccb3c27678) |
| PHP | [ズンドコキヨシ with PHP](http://qiita.com/shinderuman@github/items/7c432e8cb7719d35342a) |
| PHP | [ズンドコキヨシ with PHP](http://qiita.com/mitsugogo/items/20b466d30a10f92a0b34) |
| R | [Rでズンドコキヨシ関数を](http://qiita.com/learner/items/45ad644b91940e20118e) |
| Ruby | [ズンドコキヨシ with Ruby](http://qiita.com/yancya/items/1167e9764719151d0c80) |
| Ruby | [例のキヨシチェックを Ruby のワンライナーで書いてみる](http://qiita.com/dan5/items/3432fab70339ed0728a3) |
| Ruby | [ワンライナーズンドコキヨシ with Ruby](http://qiita.com/from_kyushu/items/905c7fe71183c5e0340c) |
| Rust | [ズンドコキヨシ with Rust](http://qiita.com/tatsuya6502/items/aea38af7fcfb912c3aff) |
| Scala | [ズンドコキヨシ with Scala](http://qiita.com/cedretaber/items/ceaa934fa17c65890e09) |
| SQL | [ズンドコキヨシ with SQL](http://qiita.com/yancya/items/8f4ef2a0fdec367935ae) |
| Wren | [ズンドコキヨシ with Wren](http://qiita.com/tbpgr/items/e409f77849421c15d541) |
| ズンドコスクリプト | [ズンドコキヨシ by ズンドコスクリプト](http://qiita.com/dankogai/items/86a740ec06ad07e129ef) |


ズンドコスクリプトの存在感がやばい。
そして、@mattn さんの [ズンドコキヨシ with Perl6 gather/take編](http://qiita.com/mattn/items/ed7ffd6f8851a8fbc2a8) がすごく素敵です。