【发布时间】:2014-09-30 02:22:20
【问题描述】:
我在我的 VB 代码中定义了一个 F# 函数,如下所示:
Dim g As Microsoft.FSharp.Core.FSharpFunc(Of Double, Double)
如何将 g 分配给特定函数:例如我想要 g(x) = x^2?
它在 VB.NET 中的语法是什么?
【问题讨论】:
-
出于好奇,这里的目标是什么?
-
只需从 FSharpFunc 派生您自己的类,实现 Invoke() 方法。
-
我的情况是,我在 F# 中编写了一个函数来查找范围内任意函数的一个根。 F# 非常令人印象深刻,我只需要编写 5 行代码(不是开玩笑),而在 VB 中,我必须编写大约 50 行代码。因此,我正在尝试学习如何同时使用这两种语言来发挥它们的优势。 (例如,我想将 VB 用于 UI,F# 用于数学部分)
-
@SLaks,这其实是错误的……F#并没有对所有事情都使用典型的IL函数,但实际上对于高阶函数、函数值等都有自己的内部FSharpFunc。而困难就来了,如果您尝试从其他任何地方调用某些 F# 函数,如果 F# 作者没有特别注意对 IL 友好。正因为如此,F# 函数可以用任何语言编写
-
@NTC 如果你想在一个项目中同时使用 F# 和 VB,我建议你学习如何设计一个对 IL 友好的 F# 程序集,这样你就不会遇到这些问题.例如。您可以在 F# 中定义一个接口,该接口具有计算所需的功能,然后在 VB 中,您可以只实现接口等。诀窍是,避免在面向 VB 中的 DU、函数值等部分。这通常会使您的 VB 代码编写起来更加方便。
标签: vb.net function f# syntax-error