tech.guitarrapc.cóm

Technical updates

PowerShellな北陸コミュニティ問題挑戦

じんぐるさん楽しそうですね。
Community Open Day 2013 資料公開
課題をPowerShellでやってみました。 と言っても、要はFizzBuzzなので前回のを使っただけで……すいません。許してください。

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
ふぇぇ………