如果Bind是monad的基础,为什么我们不在Linq中使用更多的SelectMany?

Ben*_*jol 1 c# linq monads functional-programming

如果Bind是monad的基础,为什么我们不在Linq中使用更多的SelectMany?

(抱歉,无法想到添加到问题中的任何有用的东西)

Jon*_*eet 5

嗯,SelectMany至关重要的是,许多其他事情可以用这种方式表达 - 但这并不意味着它始终是最简洁的表达方式.你能想到的Select,Where等等仅仅是方便的方法......但那些它们是如此方便,我们往往不需要最灵活的形式.

举一个例子,Aggregate可以执行你想要的所有聚合 - 但是Max,Count等等更常见.