簡體   English   中英

輸入haskell錯誤,否則

[英]haskell error on input else

以下代碼有些麻煩。 我不斷收到錯誤消息“在輸入'else'上說解析錯誤”。 我看不到我在做什么錯,我從if縮進了else語句,並且語句內部的語法正確。 背景位,它是2-3-4樹的插入方法的一部分,專門用於需要將fournode(Root3)拆分為其父級的插入。 xy和z是fournode中的值,而c1- c4是其子節點。 已經在這里查看了關於這些類型的錯誤的其他問題,但找不到有用的方法:(任何人有任何想法嗎?

insert t (Root1 a left right) | t <= a = case left of
(Root3 xyz c1 c2 c3 c4) -> if t <= y then Root2 ya (insert t (Root1 x c1 c2) (Root1 z c3 c4) right else Root2 ya (Root1 x c1 c2) (insert t (Root1 z c3 c4)) right
_ -> Root1 a (insert t(left)) (right)

可能還有其他錯誤,但是我立即可以看到您的括號不匹配。...看一下then中的括號。 直到then子句完成后,編譯器才期望else ,但是缺少末尾括號阻止了這種情況的發生。

縮進包含制表符和空格,這是一個很大的禁忌:縮進在Haskell中非常重要,並且您要確保所看到的與編譯器所看到的相同。 僅僅因為一個選項卡的寬度大約為8個空格並不意味着您可以放一個而不是8個空格。

我建議您將其修復為僅使用空格,確保所有內容正確排列,然后如果仍然有問題,請提出一個新問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM