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
Python F#地图/集合理解_Python_F#_Functional Programming_List Comprehension - Fatal编程技术网

Python F#地图/集合理解

Python F#地图/集合理解,python,f#,functional-programming,list-comprehension,Python,F#,Functional Programming,List Comprehension,我正在寻找类似于Python中dict/list/set理解的东西。在Python中,您可以执行以下操作: [x+2 for x in list if x > 10] set [for x in list do if x > 10 yield x+2] 在F中# 但在Python中,您还可以执行以下操作: {x+2 for x in list if x > 10} 生成集合,以及 {k: (v+10)/2 for k, v in list.items() if k >

我正在寻找类似于Python中dict/list/set理解的东西。在Python中,您可以执行以下操作:

[x+2 for x in list if x > 10]
set [for x in list do if x > 10 yield x+2]
在F中#

但在Python中,您还可以执行以下操作:

{x+2 for x in list if x > 10}
生成集合,以及

{k: (v+10)/2 for k, v in list.items() if k > 5}
生成Dicts。在F#中,这类东西是否有任何等价的语法(无论是函数还是总体整洁度)?

本质上,F#对此没有特殊的语法,但您可以使用数组或列表理解,并将结果传递给提供给标准库的函数

let intSet = set [for x in list do if x > 10 yield x+2]


let intMap = dict [for (x, y) in list do if x > 10 yield (x,y+2)]

有一个
set
函数接受
seq
,因此您可以执行以下操作:

[x+2 for x in list if x > 10]
set [for x in list do if x > 10 yield x+2]
与dict相同。以下是相关文件:

设置

dict