我試圖做一個函數來驗證,如果在列表中存在(我用的圖表工作)節點:哈斯克爾錯誤:在功能上非詳盡模式
buscaNodo :: [(Nodo,Peso)]->Nodo->Bool
buscaNodo _[] = False
buscaNodo ((a,b):ar) n
|(n == a)= True || (buscaNodo ar n)
|(n /= a)= False || (buscaNodo ar n)
|otherwise = False
該函數返回我的真實總是該節點存在於列表中;但如果它不存在於列表中haskell向我顯示一個錯誤:函數buscaNodo中的非窮舉模式,我需要一些幫助,我最近在學習haskell,沒有自己解決問題的必要知識。我爲我可怕的英語感到抱歉。謝謝大家
你能提供'Nodo','Peso'和你得到的錯誤信息的定義嗎?這些信息使得更容易弄清楚你的實際問題是什麼。 – bheklilr
此外,我會建議使用更高級別的功能來解決這個問題。如果您只需要查找是否列表中有'n',那麼您可以通過'map fst'和'elem'的組合輕鬆完成,比如'buscaNodo graph n = elem n $ map fst graph '。這並不能解決你所遇到的錯誤,但它會成爲你想要做的事情的替代解決方案。 – bheklilr
'Nodo'只是一個'字符串'。 '比索'是'(Int,Float)'的雙倍。在這個函數中我不使用'比索',我只想知道一個字符串是否存在於列表中。但是當它不存在時,出現錯誤:'函數buscaNodo中的非窮舉模式' –