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
F#额外参数列表.map_F# - Fatal编程技术网

F#额外参数列表.map

F#额外参数列表.map,f#,F#,我在运行List.map函数时遇到了很大的问题。 我有一个元组列表: let list = [ (1, "a"), (2, "b"), (3, "c") ] 我想在这里使用它: let FooBar (x: int) = list |> List.map (fun (num, word) number -> if number % num = 0 then word else "") x |> String.concat "" wor

我在运行List.map函数时遇到了很大的问题。 我有一个元组列表:

let list = [
    (1, "a"),
    (2, "b"),
    (3, "c")
]
我想在这里使用它:

let FooBar (x: int) =
    list |> List.map (fun (num, word) number -> if number % num = 0 then word else "") x 
    |> String.concat "" wordList
但我不能让它工作。我需要函数中的所有三个参数(每个列表项的num+字和x)。 我很高兴得到任何建议和提示

让它像这样工作:

let list = [
    (1, "a");
    (2, "b");
    (3, "c")
]

let convert (number: int) = 
    let wordList = List.map (fun (num, word) -> if number % num = 0 then word else "") numWord

投影的定义如下:
(fun(num,word)->dosth num,word,x)
。这将为您提供一个投影,它获取一些
(num,word)
,并将其映射到一个三元组
(num,word,x)

这里有一种更优雅的方式:

let enrich z (x, y) = x, y, z
let fooBar x = List.map (enrich x)

要成为一个元组列表,您应该使用分号来分隔每个元组,而不是像示例中那样使用逗号:let list=[(1,“a”);(2,“b”);(3,“c”)]。否则,您将有一个只有一个元素的列表(一个元组的元组)!这是个大问题。非常感谢你!但目标不仅仅是将元组丰富为三元组。做某事部分是做某事的另一个功能。你怎么把这三个参数都放进去?我将代码包含在goal@HmmRfa你已经在那里了<代码>(乐趣(x,y)->)。你可以在lambda里面做任何你想做的事。如果是多行代码,只需使用适当的缩进即可。所有参数都在那里:您可以看到一对的第一个和第二个元素,并访问在外部范围以及任何编程语言中定义的任何内容。