F# - 使用条件元素创建列表

aik*_*ixd 3 f# list

考虑这段代码

let a, b, c = ...
let mutable l = [a]

if conditionB then l <- b :: l
if conditionC then l <- c :: l
Run Code Online (Sandbox Code Playgroud)

我觉得这违背了语言原则.这是正确的方式还是我错过了什么?

编辑: l然后返回结果

hve*_*ter 7

序列表达式(https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/sequences)非常适用于此目的.

[ 
    if conditionC then yield c
    if conditionB then yield b
    yield a
]
Run Code Online (Sandbox Code Playgroud)