F#额外参数列表.map
我在运行List.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
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里面做任何你想做的事。如果是多行代码,只需使用适当的缩进即可。所有参数都在那里:您可以看到一对的第一个和第二个元素,并访问在外部范围以及任何编程语言中定义的任何内容。