【问题标题】:In application script hosting. How does tryfsharp.org work?在应用程序脚本托管中。 tryfsharp.org 是如何工作的?
【发布时间】:2013-03-09 16:59:00
【问题描述】:

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

拥有像tryfsharp.org 这样的东西会很棒,特别是智能感知功能。这些东西在 Github 上的某个地方可用吗?这是如何工作的?

【问题讨论】:

  • 不确定这是否是真正的 tryfsharp,但 Google 提供了 this
  • 不是。那是基于tryfs.net以上网站来自MS研究。
  • 他的问题措辞不佳,但相当于:“如何在我的应用程序中启用 F# 脚本。”
  • 生日快乐。我是 Tsunami IDE 的开发人员之一,该 IDE 旨在使人们能够将 F# 脚本添加到具有完整 Intellisense 功能的应用程序中。我们还没有发布我,但有兴趣了解更多关于您正在寻找的内容,以确保我们能够满足您的需求。
  • @moloneymb 我看了一个海啸视频,好东西。我很想知道它是如何与其他一切相结合的。具体来说,一旦用户保存他们所做的事情,代码是如何组装和访问的。是否有可能将其集成,以便将编写的代码作为主体插入到函数中。就像一个委托处理程序。

标签: f#


【解决方案1】:

简答

用于第一个带有 F# 2 的 TryFSharp 的代码(包括 Intellisense 支持)可通过 code drop 获得。例如,Rob Pickering 用它为Undertone 构建了一个在线编辑器。我怀疑当前使用 F# 3 的 TryFSharp 网站上使用的代码会及时出现。

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

更长的答案

脚本有两个方面:

  1. 编辑
  2. 执行

F# 已经支持通过 F# Interactive 编辑和执行 (.fsx) script files

编辑 F# 代码

F# 代码不乏外部编辑器:

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

还有几个新的 F# 编辑器即将推出:

AvalonEdit 是开始基于桌面的嵌入式编辑器的好地方。选择编辑器环境后,您需要在简单的语法突出显示或使用 F# 绑定的更高级集成之间进行选择。如果您怀疑人们会使用外部编辑器,那么语法高亮可能就足够了。

带上你自己的编辑器可能是最容易开始的地方。

执行 F# 代码

执行 F# 代码的选项:

使用 F# CodeDOM 编译 sn-p:

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

【讨论】:

    猜你喜欢
    • 2012-05-07
    • 2011-01-14
    • 2017-07-10
    • 2022-01-11
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    相关资源
    最近更新 更多