我想在Haskell使用下面的代碼/功能:爲什麼模式匹配不在Haskell的封面列表中?
test :: String -> String -> Bool
test (x:xs) (x:ys) = True
test _ _ = False
這應該檢查是否兩份名單完全相同的元素開始。
但這不起作用。
我的編譯器說:Conflicting definitions for x
我認爲這樣的模式匹配必須在功能語言中工作。我剛剛和Prolog合作過,我很確定它在那裏工作:/
這是不是在Haskell中實現,或者是我的語法錯誤?
當列表包含無法比較的項目(例如函數)時,會產生隱式比較的問題。允許這種隱式比較可能(可能)使語法不太清晰。雖然存在與數字常量匹配的奇怪事物,它使用整數和比較。 – Laar