F# 从函数输出变量以在 C# 中使用

F# outputting variables from a function to use in C#

我在 f# 中编写数学函数,以便它们可以被 C# 代码调用。

我写了以下内容,它是一些成功事件样本的置信区间计算器。将调用的函数是 ConfidenceIntervalCalculator,其中两个变量 x 是成功次数,n 是样本大小。

我要输出所有三个变量上限、下限和转换。输出这些内容以便 C# 可以使用它们的最佳方式是什么?

(我目前已将其输出为列表,但这是为了检查函数是否实际工作。)

也欢迎任何关于实际改进功能的评论。

open System
#light

// Calculates the conversion rate P hat

let phat (x : float) (n : float) = x / n 

// Calculates the interval based on a 95% confidence level using Binomial proportion confidence interval

let binomialconf (n : float) (phat : float)  = 1.96 * sqrt ((1.00/n)*(phat)*(1.00-(phat)))

// Calculates outputs conversion rate with lower and upper interval confidence limit

let interval (x : float) (n : float)  (inter : float) = [for i in  [-1.00 .. 1.00] -> (phat x n + i * inter) * 100.00 ]

//Piping all functions together to use as one complete function. 

let ConfidenceIntervalCalculator (x : float) (n : float) =  phat x n |>  binomialconf n |> interval x n 

如果您的函数return恰好有 3 个值,您可以使用元组。

其他选项是:

  • 在 C#
  • 中将被视为 class 的记录
  • 一个 return 值和其他 2 个引用
  • 将计算 3 个值的函数,即 CPS 样式。