2
下面我顯示輸出。如果他們不相等,我給出了一個數字列表,然後返回False並正確工作。但是,如果數字列表相等,那麼它不會返回True。你能檢查這個代碼嗎?每個數字的列表不等於假的工作,但在相同的數字它不工作
la [] = True
la a =
if ((head a)==head (tail a))
then la (tail a)
else False
輸出:
Cw2016> la [1,2,2]
False
Cw2016> la [2,2,2]
Program error: pattern match failure: head []
Cw2016> la [2,2,3]
False
Cw2016> la [0,1,3]
False
Cw2016> la [0,0,3]
False
Cw2016> la [0,0,0]
Program error: pattern match failure: head []
Cw2016>
逐步評估'la [1]'。 –
'la(x:xs)'自從'head(x:xs)= x'和'tail(x:xs)= xs'後更容易閱讀 – wizzup