(PowerShell)配列の先頭要素だけ取り出す
分配束縛っぽい記述を使うと、配列の先頭要素と残りを分割できます。
$x = 1..5 $y,$z = $x $y #=> 1 $z #=> 2 3 4 5
Lispの car と cdr の動作ですね。これは再帰処理と相性が良い形です。
例えば、PowerShellのパス文字列連結コマンドレット Join-Path は2つの引数しか受け付けませんが、3つ以上のパス連結関数も簡単に書けます。
function Join-Paths ([string[]] $Paths) { $parent, $rest = $Paths if(-not $rest){ $parent }else{ Join-Path $parent (Join-Paths $rest) } }
使用例
PS C:\> Join-Paths hoge, piyo, fuga hoge\piyo\fuga
もとの Join-Path と異なり、引数は配列なのでカンマが必要です。