Community Open Day 2013 資料公開課題をPowerShellでやってみました。 と言っても、要はFizzBuzzなので前回のを使っただけで……すいません。許してください。
C#er 3人によるプログラム対決は、こんなルールです。さぁ、皆さんも挑戦してみませんか? #hokunet #cod2013jp twitter.com/RamuMystery/st…
— Takae Sakushima (@RamuMystery) May 11, 2013
PowerShellで書くと
まぁ、ほんと前回のにちょちょいと足しておわりです。(所要時間10秒)1..100 | % {$x = @("北陸")[$_ % 2] + @("コミュニティ")[$_ % 3] + @("最高")[$_ % 5]; ($x,$_)[!$x]}これでいいですか。
1..100 | % {$x = @("北陸")[$_ % 2] + @("コミュニティ")[$_ % 3] + @("最高")[$_ % 5]; ($x,$_)[!$x]} 1 北陸 コミュニティ 北陸 最高 北陸コミュニティ 7 北陸 コミュニティ 北陸最高 11 北陸コミュニティ 13 北陸 コミュニティ最高 北陸 17 北陸コミュニティ 19 北陸最高 コミュニティ 北陸 23 北陸コミュニティ 最高 北陸 コミュニティ 北陸 29 北陸コミュニティ最高 31 北陸 コミュニティ 北陸 最高 北陸コミュニティ 37 北陸 コミュニティ 北陸最高 41 北陸コミュニティ 43 北陸 コミュニティ最高 北陸 47 北陸コミュニティ 49 北陸最高 コミュニティ 北陸 53 北陸コミュニティ 最高 北陸 コミュニティ 北陸 59 北陸コミュニティ最高 61 北陸 コミュニティ 北陸 最高 北陸コミュニティ 67 北陸 コミュニティ 北陸最高 71 北陸コミュニティ 73 北陸 コミュニティ最高 北陸 77 北陸コミュニティ 79 北陸最高 コミュニティ 北陸 83 北陸コミュニティ 最高 北陸 コミュニティ 北陸 89 北陸コミュニティ最高 91 北陸 コミュニティ 北陸 最高 北陸コミュニティ 97 北陸 コミュニティ 北陸最高あ、functionもどうぞ。
function Get-北陸コミュニティ最高{ [CmdletBinding()] param( [int[]]$seq ) $seq ` | ForEach-Object{ New-Object PSObject -Property @{ numFizzBuzz = ($_ | ForEach-Object {"$_" + @("北陸")[$_ % 2] + @("コミュニティ")[$_ % 3] + @("最高")[$_ % 5]}) oneFizzBuzz = ($_ | ForEach-Object {((@("北陸")[$_ % 2] + @("コミュニティ")[$_ % 3] + @("最高")[$_ % 5]),$_)[!((@("北陸")[$_ % 2] + @("コミュニティ")[$_ % 3] + @("最高")[$_ % 5]))]}) varFizzBuzz = ($_ | ForEach-Object {$x = @("北陸")[$_ % 2] + @("コミュニティ")[$_ % 3] + @("最高")[$_ % 5]; ($x,$_)[!$x]}) } } } Get-北陸コミュニティ最高 -seq (1..100) | Format-Table -AutoSize Get-北陸コミュニティ最高 -seq (1..10000) | Format-Table -AutoSize Get-北陸コミュニティ最高 -seq (1..100) | Format-Listえ、実行速度ですか…。
Measure-Command{ 1..100 | % {$x = @("北陸")[$_ % 2] + @("コミュニティ")[$_ % 3] + @("最高")[$_ % 5]; ($x,$_)[!$x]}}
TotalMilliseconds : 17.2722ふぇぇ………