F#:是否有一种惯用的方法来替换循环seq {}表达式?

Rob*_*Sim 5 f#

是否有更惯用的方式来表达F#中的这种模式:

seq {
    for item1 in list1 do 
        for item2 in list2 do
            yield f(item1,item2)
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

scr*_*wtp 6

这种模式就像它所获得的一样.

通常一种替代方法是使用类似Seq.map或更高阶函数的管道Seq.filter,但对于您的特定情况 - 笛卡尔积 - 序列理解方法真的很闪耀,否则您将无法获得任何接近的简单函数.

这是一种判断,可以使用哪种风格.我倾向于选择管道方法,后来才意识到序列理解方法有多清楚.