<p>我在寻找类似于Python中dict/list/set理解的东西。在Python中,可以执行以下操作:</p>
<pre><code>[x+2 for x in list if x > 10]
</code></pre>
<p>在F中</p>
^{pr2}$
<p>但在Python中,也可以执行以下操作:</p>
<pre><code>{x+2 for x in list if x > 10}
</code></pre>
<p>生成集合,以及</p>
<pre><code>{k: (v+10)/2 for k, v in list.items() if k > 5}
</code></pre>
<p>生成Dicts。在F#中,这类东西是否有等价的语法(无论是在功能上还是在整体整洁方面)?在</p>
<p>本质上F没有特殊的语法,但是可以使用数组或列表理解并将结果传递给提供给标准库的函数。在</p>
<pre><code>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)]
</code></pre>