今回は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
コメント