1
此代碼在幾分鐘前工作,並且在我重新啓動我的ghci後,它停止工作.. 現在,我在where
,snst
或size
上收到隨機錯誤。 (不知道我改變了什麼導致每個單獨的錯誤)Haskell語法錯誤在看似隨機的位置
有人可以指出我的語法有什麼問題嗎?
instance Array Tree where
new n x
| n <= 0 = Leaf
| odd n = Node n nst x nst
| even n = Node n (Node (n `div` 2) snst x snst) x snst
where nst = (new (n `div` 2) x)
snst = (new (n `div` 2 - 1) x)
size Leaf = 0
size (Node s _ _ _) = s
這項工作只是罰款。謝謝。但是有沒有解釋爲什麼我這樣做會導致編譯失敗? – rlhh 2013-03-27 03:07:41
@ user1043625好吧。實例中函數定義的語法是有限的。據我記得,你只被允許每個函數有一個方程式。但顯然你在這裏有2個'尺寸'。所以我也很困惑。 – Tarrasch 2013-03-27 04:23:30
@Tarrasch:這不正確。實例聲明中的函數定義沒有這樣的限制。 – 2013-03-27 06:33:29