Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function F#-F中的循环问题#_Function_F# - Fatal编程技术网

Function F#-F中的循环问题#

Function F#-F中的循环问题#,function,f#,Function,F#,我想写这种程序(这是一个简单的例子来解释我想做什么): 提前谢谢你 您可以使用矩阵列表,而不是对单个矩阵使用单独的变量: let products = [ matrix [[0.;1.;0.]] matrix [[1.;1.;0.]] matrix [[1.;1.;1.]] ] 如果矩阵是硬编码的(如示例中所示),则可以使用上述符号初始化列表。如果它们是以某种方式计算的(例如,作为对角线或排列或类似的方式),那么可能有更好

我想写这种程序(这是一个简单的例子来解释我想做什么):


提前谢谢你

您可以使用矩阵列表,而不是对单个矩阵使用单独的变量:

let products = [ matrix [[0.;1.;0.]] 
                 matrix [[1.;1.;0.]] 
                 matrix [[1.;1.;1.]] ]
如果矩阵是硬编码的(如示例中所示),则可以使用上述符号初始化列表。如果它们是以某种方式计算的(例如,作为对角线或排列或类似的方式),那么可能有更好的方法来创建列表,可以使用
list.init
或使用类似的函数

一旦有了列表,就可以使用
for
循环对其进行迭代:

for product in products do
  printfn "%A" product 

(在您的示例中,您没有对任何内容使用索引-但是如果出于某种原因需要索引,您可以使用
[|…|]
创建一个数组,然后使用
产品访问元素。[i]

您也可以这样做:

matrix    [ [ 0.; 1.; 0. ];
            [ 1.; 1.; 0. ];
            [ 1.; 1.; 1. ]; ]
    |> Seq.iter(fun p -> printf "%A" p)

您可以将
product1
添加到
productN
列表中,
lst
,并在lst do printfn“%a”prod中为prod添加:
。这就是你想要的吗?谢谢,太好了!我将使用索引,因此使用数组示例……请注意,直接索引通过[I]也适用于列表,只是它可能会有一个数组的O(n)而不是O(1)的性能配置文件。@katter75:如果您的问题已按您的期望得到回答,请不要忘记选择,然后回答为“正确”。
matrix    [ [ 0.; 1.; 0. ];
            [ 1.; 1.; 0. ];
            [ 1.; 1.; 1. ]; ]
    |> Seq.iter(fun p -> printf "%A" p)