[PowerShell V2 CTP3]PowerShellでF#

今回はPowerShellからF#のコードを使用する方法についてです。

これまでの関連記事は

PowerShellでC#
PowerShellでVB.NET

です。

前回の記事で、Add-Typeコマンドレットの-Languageパラメータでは

言語 パラメータ値
C# CSharp
CSharpVersion3
VB.NET VisualBasic
JScript JScript

を指定可能だとお伝えしました。

PowerShellのヘルプを眺めていたら、F#も扱えるとのことだったので実験をしてみました。

まずは前提条件としてF#がインストールされていなければいけません。(自分の場合はF#の1.9.6.2がインストールされています。)

まずはPowerShellを起動し、下記のように入力してください。

PS>  cd "C:\Program Files\FSharp-1.9.6.2\bin"
PS C:\Program Files\FSharp-1.9.6.2\bin> Add-Type -Path FSharp.Compiler.CodeDom.dll
PS C:\Program Files\FSharp-1.9.6.2\bin> $provider = New-Object Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider 

1行目は自分のF#がインストールされている場所にあるbinディレクトリへの移動です。

2行目でF# Code CompilerをPowerShellで使用可能にします。

3行目でF#のプロバイダのインスタンスを$provider変数に代入します。

次にF#のソースコードを変数$sourceに代入します。SayHelloという関数をF#で記述しています。

$fSharpCode=@"
#light

let SayHello () = "Hello PowerShell"
"@ 

次に下記のように入力します。(ヘルプからのパクリ)

$fsharpType = Add-Type -TypeDefinition $fSharpCode -CodeDomProvider $provider -PassThru | where { $_.IsPublic }

これで下準備はOKです。

あとは下記のようにしてSayHello関数を使用します。

PS> $fsharpType::SayHello()
Hello PowerShell

コメント

タイトルとURLをコピーしました