6

アプリ内でF#スクリプトを使用できるようにすることに興味があります。

tryfsharp.orgのようなもの、特にIntellisense機能があると便利です。これはGithubのどこかで利用できますか?これはどのように作動しますか?

4

1 に答える 1

19

短い答え

Intellisenseサポートを含むF#2を使用したTryFSharpの最初のカットに使用されるコードは、コードド​​ロップとして利用できます例として、RobPickeringはUndertone用のオンラインエディターを作成しました。F#3を使用している現在のTryFSharpサイトで使用されているコードが間に合うようになると思います。

TryFSharpは、Silverlightを使用してクライアントのブラウザーでF#コンパイラをホストします(F#はF#で記述されています)。サーバー上で実行されているF#コンパイラのインスタンスをブラウザからオンデマンドで呼び出すこともできます。これは、TryFs.NetPitが採用しているアプローチです。

長い答え

スクリプトには2つの側面があります。

  1. 編集
  2. 実行

F#は、 F#Interactiveを介した(.fsx)スクリプトファイルの編集と実行をすでにサポートしています。

F#コードの編集

F#コード用の外部エディターに不足はありません。

Xamarin Studio、Emacs、およびVimのエディターサポートは、コード補完を提供するオープンソースのF#バインディングプロジェクトに基づいています。SharpDevelopはオープンソースのAvalonEditを使用し、F#の構文の強調表示を含みます。独自のプロジェクトでAvalonEditを使用できます。たとえば、オープンソースのRefunctorプロジェクトでは、AvalonEditを使用してReflector内でF#編集を提供します。

近い将来、F#用の新しいエディターもいくつかあります。

AvalonEditは、デスクトップベースの組み込みエディターを開始するのに適した場所です。エディター環境を選択したら、単純な構文の強調表示またはF#バインディングを使用したより高度な統合のいずれかを選択する必要があります。人々が外部エディタを使用すると思われる場合は、構文の強調表示で十分な場合があります。

自分のエディターを持参するのがおそらく最も簡単な開始場所であり、実行を終了するだけです。

F#コードの実行

F#コードを実行するためのオプション:

F#CodeDOMを使用してスニペットをコンパイルします。

open Microsoft.FSharp.Compiler.CodeDom
open System.CodeDom.Compiler

let compile snippet =
    use provider = new FSharpCodeProvider()
    let options = CompilerParameters(GenerateInMemory=true)
    provider.CompileAssemblyFromSource(options, [|snippet|])

let snippet = """
module Snippet
let x = 1
"""
let results = compile snippet
于 2013-03-10T12:10:36.803 に答える