haskell - 使用 let 在线解析错误(可能是不正确的缩进或不匹配的括号)

标签 haskell compiler-errors parse-error

我明白了

parse error (possibly incorrect indentation or mismatched brackets)

|就行了i > j = 交换轴 p j

apartition :: Ord a => STArray s Int a -> Int -> Int -> ST s Int
apartition axs p q = do 
  x <- readArray axs p
  let loop i j
    | i > j = do swap axs p j
                 return j
    | otherwise = do u <- readArray axs i
                     if u < x 
                       then do loop (i + 1) j 
                       else do swap axs i j
                            loop i (j − 1)
  loop (p + 1) q

我真的很困惑造成这种情况的原因,有人可以帮我解决问题吗?

最佳答案

这是一个缩进错误,您需要在循环定义开头的右侧放置至少一个字符,因此:

apartition :: Ord a => STArray s Int a -> Int -> Int -> ST s Int
apartition axs p q = do 
  x <- readArray axs p
  let loop i j
       | i > j = do swap axs p j
                    return j
       | otherwise = do u <- readArray axs i
                        if u < x 
                        then do loop (i + 1) j 
                        else do swap axs i j
                                loop i (j - 1)
  loop (p + 1) q

关于haskell - 使用 let 在线解析错误(可能是不正确的缩进或不匹配的括号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66976104/

相关文章:

java - 编译代码时出现错误的操作数错误

GHCi 中的 Haskell csv 管道

c++ - 可以在 Haskell 中模拟 'correspond' 类型的 C++ 结构模式(模板特化)吗?

haskell - 调用/抄送实现?

java - 为什么我不能在 Java 中使用 "static import" "equals"方法?

php - 如何修复语法错误,意外的 '' (T_STRING)?

string - 当需要快速 (O(1)) 索引时,哪种 Haskell 字符串类型用于 Unicode 数据?

c++ - GLFW MinGW 链接错误

date - 错误 java.time.format.DateTimeParseException : could not be parsed, 在索引 10 处找到未解析的文本

Haskell:IO程序中的解析错误