我寫所謂myElems哈斯克爾功能是比較兩個列表
即取值的兩個列表,如果在 第一列表中的所有值都在第二個列表返回true哈斯克爾功能的項目。例如,myElems "db" "abcd"
應返回true
,而myElems [1,2] [0,1,3,4]
應返回false
。
myElem
功能是這樣
myElem n [] = False
myElem n (x:xs) = if n == x then True else myElem n xs
此功能工作得很好,但是當我試圖把它應用到myElems函數具有這種形式
myElems xs [] = False
myElems [] ys = False
myElems (x:xs) (y:ys) = if myElem y xs /= myElem x ys then False else myElems (tail xs) (tail ys)
不會在所有的工作。
爲什麼downvotes? – drozzy 2013-02-12 03:49:39
這是一個微不足道的家庭作業問題,雖然OP發佈了他試圖解決的問題,但他顯然沒有花時間思考*爲什麼*它不起作用。看看他的第二行:'myElems [] ys = False'。如果他想到這件事,他會發現公然的邏輯錯誤;甚至在第三行發現廢話之前。 – Quuxplusone 2013-02-12 04:20:34