hakeの日記

Windows環境でプログラミングの勉強をしています。

PowerShell - スクリプトブロック

以下の様に、スクリプトブロックを変数に代入できる。呼び出しは変数に"&"を付加する。
なので高階関数のようなことも可能になります。

$plus1 = {
    param( $a )
    return $a + 1
}

# 第一引数にスクリプトブロック
# 第二引数にリスト
function map($fn, $list){
    
    $list | %{ return &$fn $_ }
}


map $plus1 @(1,2,3)
# => 2
#    3
#    4