我有以下 Haskell 代碼:
為什么x1的模式不匹配函式f?
uj5u.com熱心網友回復:
按原樣閱讀非常困難。讓我們使用一些有創意的空白來排列。
f ( [_ ]:[(x,[xs ])]:[y ,ys ] :[]) = 1
x1 = [[(1,[1,2])],[(1,[1,2])],[(1,[1,2]),(1,[1,2])],[]]
好的。所以實際上有一些不同的事情并沒有像你期望的那樣進行!
[xs]不匹配[1, 2],因為[xs]是一個單元素串列并且[1, 2]是一個雙元素串列(可能的解決方法:xs代替[xs])[y, ys]恰好匹配,但我懷疑不是你希望的方式:y比賽到串列中的第一個元素,只是因為我認為你打算,但YS的第二元素的串列,而不是串列的其余部分,我認為你打算(可能的修復:(y:ys)而不是[y, ys])- 您的模式
:[]匹配串列定義的右括號,而不是最終[]元素(可能的修復::[]:[]而不是:[]; 第一個[]匹配元素,第二個[]匹配串列結束標記)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/316814.html
上一篇:高級型別類的量化約束
