如何在F#中正确将带条件的多行列表写成单行形式?
F#列表表达式多行与单行写法的行为差异
当编写如下多行F#代码:
let x = true [ 1 2 if x then 3 4 ]
运行结果为[1; 2; 3; 4];当x为false时,输出[1; 2; 4]。
尝试将其改写为单行形式:
[ 1; 2; if x then 3; 4 ]
当x为true时,结果与多行版本一致,但当x为false时,仅输出[1; 2],和多行版本的输出存在差异。我尝试过添加括号、使用yield或begin/end等方式,都无法解决这个问题。
补充说明:由于未找到不改变类型的有效解决方案,且尝试的非解决方案存在意外行为,我已在GitHub提交相关issue。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

