
Originally Posted by
J. Dillinger
ja aber ob es
p [2,3,4,5,6] (0:1:[]) (1:[]) oder
p [] (0:1:[]) (1:[]) ist es egal oder, wiel dann wird es in den zweiten Funktion fortgefahren
p _ xs ys = (sum xs, product ys);
und weil es in den ersten Argument
_ steht ist es egal ob die liste leer ist oder Elemente enthält.
Ich bin mir nicht sicher wann die zweite Funktion aufgerufen und ob sie immer aufgerufen wird.
Ich verwende WinGHCI und die commando set funktioniert nicht!!!
die "zweite" funktion wird immer dann aufgerufen, wenn das erste argument der "ersten" funktion nicht auf (a:b:l) matched. also in 2 faellen:
- eine 1-elementige list
- eine leere liste
Code:
p (0:1:[2,3,4,5,6]) [] []
p (2:3:[4,5,6]) (0:1:[]) (1:[])
p (4:5:[6]) (2:3:(0:1:[])) (3:(1:[]))
-- [6] matched nicht auf (a:b:l)
p _ (4:5:(2:3:(0:1:[]))) (5:(3:(1:[])))
-- aequivalent zu
p _ [4,5,2,3,0,1] [5,3,1]
(sum [4,5,2,3,0,1], product [5,3,1)
(15, 15)
Bookmarks