LoginSignup
2
1

More than 5 years have passed since last update.

PowerShellでワンライナーズンドコキヨシ

Posted at

いつか書こうと思ってたけど、今日唐突に思い立った。

ワンライナー

($stop = $str = '') | % {Do {Get-Random 'ズン', 'ドコ'} Until ($stop)} | % {($str += $_)} | ? {$_.EndsWith('ズンズンズンズンドコ')} | % {$_ + 'キ・ヨ・シ!'} | ? {($stop = $true)}

動作説明

読みやすいように改行しておく。
読むとわかるが、代入演算を括弧で括ると代入結果が返ってくることを悪用したコードになっている。

($stop = $str = '') |
    % {Do {Get-Random 'ズン', 'ドコ'} Until ($stop)} |
    % {($str += $_)} |
    ? {$_.EndsWith('ズンズンズンズンドコ')} |
    % {$_ + 'キ・ヨ・シ!'} |
    ? {($stop = $true)}

各行の動作は大体下記の通り。
書き方は突飛だが、やってることは至って普通。

  1. 累積用の変数を空文字列に初期化
  2. ループを回してランダムに「ズン」「ドコ」を生成
  3. 生成した「ズン」「ドコ」を累積
  4. 累積結果の末尾が「ズンズンズンズンドコ」になったら、
  5. 累積結果に「キ・ヨ・シ!」を追加して出力
  6. ループを止める
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1