Ich benutze zipWith
. Ich bekomme die richtigen Ergebnisse, aber mit falschen Zeichen. Wie repariere ich es? Wo gehe ich falsch?Berechne den Unterschied zwischen aufeinanderfolgenden Elementen in einer gegebenen Liste von Ganzzahlen
diff :: [Int] -> [Int]
diff [] = []
diff x = zipWith (-) (tail x) x
Ergebnis:
diff [4,2,7,3,6,5]
[-2,5,-4,3,-1]
Ich möchte:
[2,-5,4,-3,1]
'zipWith (-) x (Schwanz x)' – pdexter
@pdexter, wenn Sie es als Antwort setzen, ich werde genehmigen –
Beachten Sie, dass Sie könnten einfach 'diff x = zipWith (-) x (tail x)' ohne den Basisfall von '[]' schreiben, denn wenn 'x' leer ist, wird' zipWith' nicht das zweite Argument auswerten und somit wird 'tail' nicht ausgelöst eine Ausnahme. – Bakuriu