Li *_*oyi 2 python f# functional-programming list-comprehension
我正在寻找类似于 Python 中的 dict/list/set 推导式的东西。在Python中你可以这样做:
[x+2 for x in list if x > 10]
Run Code Online (Sandbox Code Playgroud)
并在 F# 中
[for x in list do if x > 10 yield x+2]
Run Code Online (Sandbox Code Playgroud)
但在Python中,你也可以这样做:
{x+2 for x in list if x > 10}
Run Code Online (Sandbox Code Playgroud)
生成集合,以及
{k: (v+10)/2 for k, v in list.items() if k > 5}
Run Code Online (Sandbox Code Playgroud)
生成字典。F# 中是否有任何等效的语法(无论是在功能方面还是在整体整洁方面)?
有一个set接受的函数seq<_>,所以你可以这样做:
set [for x in list do if x > 10 yield x+2]
Run Code Online (Sandbox Code Playgroud)
与 相同dict。以下是相关文档:
set: http: //msdn.microsoft.com/en-us/library/ee353747.aspx
dict:http://msdn.microsoft.com/en-us/library/ee353774.aspx
| 归档时间: |
|
| 查看次数: |
569 次 |
| 最近记录: |