list - F# 列表分布在多行

标签 list f# syntax-error line-breaks lambda

好的,我有一个 F# 函数列表, 为了清晰起见,我想将它们分布在多行中, 如图:

type pos=char*int
let potentialPoss:List<pos->pos>=
    [fun (c,i)->(c+char 1,i+2);
    fun (c,i)->(c+char -1,i+2);
    fun (c,i)->(c+char 1,i-2);
    fun (c,i)->(c+char -1,i-2);
    fun (c,i)->(c+char 2,i+1);
    fun (c,i)->(c+char -2,i+1);
    fun (c,i)->(c+char 2,i-1);
    fun (c,i)->(c+char -2,i-2) ]

看起来很合理吧? (仅供引用,pos 存储棋子的代数位置,potentialPoss 是马移动列表)

但是我得到了关于 second fun:“表达式中出现意外的关键字‘fun’。应为‘]’或其他标记。” 在 [: "不匹配的 '['."

我觉得这是正确的语法? 有什么建议吗?

最佳答案

您只需要所有列表元素都与第一个元素一样缩进:

[fun (c,i)->(c+char 1,i+2);
 fun (c,i)->(c+char -1,i+2);
 fun (c,i)->(c+char 1,i-2);
 etc

这适用于所有代码块(计算表达式、模式匹配等)。

关于list - F# 列表分布在多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5602690/

相关文章:

jquery - 使用 jQuery 对列表项进行分组

java - 从列表中删除条目?

c# - 如何通过组合其他两个列表来创建新列表?

f# - 在 F# 中,如何生成具有 Func<obj> 类型的表达式?

php - PHP语法错误由引号引起

linux - 在 bash 脚本中,if 语句出现意外的 "syntax error: unexpected end of file"

java - 过滤scala中对象列表的列表属性

unit-testing - F# 和 NUnit : Structured output of record types on test failure

datagridview - 在 F# 中记录数组到 DataTable 的通用转换,反之亦然

ruby-on-rails - RubyMine语法错误-新版ruby 2.1.2