F# 编译错误

标签 f#

我是 F# 新手,在以下函数中遇到错误:

let PrintBoard (board:list<string>) (size:int) :unit =
    for i = 0 to (size - 1) do
        printf " ---"
    printfn ""
    for i = 0 to (size - 1) do 
        printf "| "
        for j = 0 to (size -1) do // error: "The value is not a function and cannot be applied"
            printf "%s" (List.item(i * size + j) board)
            printf " | "
            done
        printfn ""
    done
    for i = 0 to (size - 1) do
        printf " ---"
    printfn ""

我不明白为什么我不能在嵌套循环中使用“size”。

最佳答案

语法(size -1)尝试调用函数size并向其传递参数-1,但是size 不是函数(因此,“该值不是函数”)。您需要使用 (size - 1) 来代替——注意空格!

关于F# 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48123457/

相关文章:

recursion - F# 列表上基于连续的尾递归

f# - 在 F# 中使用 Seq.fold 的更好方法

f# - 在 FsUnit F# for XUnit 中断言异常

list - F# Bool 列表检查列表中的 1 个元素是否为 true

linux - 如何在 Linux 上使用 nuget 和 fsharp

for-loop - 避免 F# 中的 for 循环

string - F# printf 字符串

f# - 嵌入 F# 交互式示例从 FSharp.Compiler.Service 抛出异常

f# - 如何为所提供的方法提供带有静态参数的返回类型

recursion - 如何使重试函数尾递归?