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 样式。
我在 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 样式。