dam*_*boy 4 f# dictionary functional-programming intersect
我想将具有公共密钥的两个F#地图集成到一个Map中,该Map具有公共密钥和两个值的元组作为其值.
即签名是这样的:
Map<K, T1> -> Map<K, T2> -> Map<K, T1 * T2>
Run Code Online (Sandbox Code Playgroud)
有任何简单实用且高效的方法吗?
我知道我可以将各组键交叉,然后构建一个新的地图,我只想做一些不那么脏的事情......
之前我遇到过类似的问题,最后解决了这个问题:
let intersect a b = Map (seq {
for KeyValue(k, va) in a do
match Map.tryFind k b with
| Some vb -> yield k, (va, vb)
| None -> () })
Run Code Online (Sandbox Code Playgroud)