我知道线性代数上有很多外部包,但我的问题是我什么时候使用 f#,什么时候使用 c#?我做了一个简单的例子,当我这样做时,我意识到它可能太简单了。但是可以说我想对两个数组进行逐个元素的划分:
命令式c#:
static double[] elementdivideimp (double[] arr1, double[] arr2)
{
var res = new double[arr1.Length];
for (int i = 0; i < arr1.Length; i++)
{
res[i] = arr2[i]/arr1[i];
}
return res;
}
LINQ C#:
static double[] elementdivideL(double[] arr1, double[] arr2)
{
return arr1.Zip(arr2, (a, b) => b/a).ToArray();
}
F#:
let elementdividefunc a b = Array.map2 (fun i j -> (j / i)) a b
如前所述,也许这太简单了,但是当我面临编程挑战时,我真的很难决定选择哪种语言。那么我什么时候使用哪个?