F# 在应用程序脚本托管中。tryfsharp.org是如何工作的?

F# 在应用程序脚本托管中。tryfsharp.org是如何工作的?,f#,F#,我对在我的应用程序中使用F#脚本的能力感兴趣 拥有类似的东西会很棒,特别是智能感知能力。在Github的某个地方有这些功能吗?这是怎么回事?简短回答 使用F#2的TryFSharp的第一段代码,包括Intellisense支持,可作为。例如,Rob Pickering用它构建了一个在线编辑器。我怀疑当前使用F#3的TryFSharp网站上使用的代码会及时出现 TryFSharp使用Silverlight在客户端浏览器中托管F#编译器(F#是用F#编写的)。也可以根据需要从浏览器调用服务器上运行的

我对在我的应用程序中使用F#脚本的能力感兴趣


拥有类似的东西会很棒,特别是智能感知能力。在Github的某个地方有这些功能吗?这是怎么回事?

简短回答

使用F#2的TryFSharp的第一段代码,包括Intellisense支持,可作为。例如,Rob Pickering用它构建了一个在线编辑器。我怀疑当前使用F#3的TryFSharp网站上使用的代码会及时出现

TryFSharp使用Silverlight在客户端浏览器中托管F#编译器(F#是用F#编写的)。也可以根据需要从浏览器调用服务器上运行的F#编译器的实例,这是and采用的方法

更长的答案

脚本有两个方面:

  • 编辑
  • 执行
  • F#已支持通过编辑和执行(.fsx)

    编辑F#代码

    F#代码不缺少外部编辑器:

    对Xamarin Studio、Emacs和Vim的编辑器支持基于开放源码项目,该项目提供代码完成。 SharpDevelop使用开放源代码,包括F#的语法突出显示。您可以在自己的项目中使用AvaloneEdit,例如,开源项目使用它在Reflector中提供F#编辑功能

    《F#》即将推出两位新编辑:

    • -基于web的F#IDE
    • -Excel、Hadoop等嵌入式编辑器
    AvalonEdit是基于桌面的嵌入式编辑器的良好起点。一旦选择了编辑器环境,就需要在简单语法高亮显示和使用F#绑定的更高级集成之间进行选择。如果您怀疑人们会使用外部编辑器,那么语法高亮显示就足够了

    带上自己的编辑器可能是最容易开始的地方,只需离开执行

    执行F#代码

    执行F#代码的选项:

    • F#编译器通过F#编译器代码删除或调用
    使用F#CodeDOM编译代码片段:


    不确定这是否是真正的tryfsharp,但谷歌承认并非如此。这是基于上述网站的,来自微软研究院。他的问题措辞拙劣,但相当于:“我如何在我的应用程序中启用F#脚本。”。我是Tsunami IDE的开发人员之一,该IDE旨在使人们能够使用完整的Intellisense功能将F#脚本添加到他们的应用程序中。“我们还没有发布,但我有兴趣了解更多您想要的信息,以确保我们能够满足您的需求。”moloneymb我看了一段海啸视频,“好东西”。我很想知道它是如何与其他东西结合在一起的。具体来说,一旦用户保存了他们所做的事情,代码是如何组装和访问的。是否有可能将其集成,以便将编写的代码作为函数的主体插入。就像一个代理处理程序。
    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