将C#代码转换为F#

时间:2010-06-05 18:23:32

标签: c# f#

我只是编程的初学者,我希望将一些代码从C#转换为F#,

我已经使用了这段代码:

float[] v1=new float[10];

...

//Enqueue the Execute command. 
Queue.Execute(kernelVecSum, null, **new long[] { v1.Length }**, null, null);

我之前已经问过如何转换v1对象, 我想我知道怎么做 但是我如何使用函数调用,尤其是函数参数的new long[] { v1.Length }部分,new long[] { v1.Length }是什么意思?

我创建了 v1 ,就像这个let v1 = [| for i in 1.0 .. 10.0 -> 2.0 * i |]

一样

这是对的吗? 或者我应该使用 v1 这样的let v1 = ref [| for i in 1.0 .. 10.0 -> 2.0 * i |]

2 个答案:

答案 0 :(得分:2)

这实际上更像是一个C#问题......你可能会这样标记它。

在C#中

new long[] { v1.Length }

创建一个新的long数组,其中包含一个值为v1.Length的元素。在F#中就是这样。

[| int64 v1.Length |]

(在任何情况下,不,你不希望F#代码中有ref。你还没有按照建议的here更正数据类型。)

答案 1 :(得分:0)

Queue.Execute(kernelVecSum, null, [| int64 (v1.Length) |], null, null)