0
Dies ist Arbeitscode Aufruf +/- Berechnung, die (calculate '(3 2 1) 0 0) -> 0
und (calculate '(7 5 1 2) 0 0) -> 1
zurückgibt.Wie erhalten Sie den Rückgabewert als #t und #f von einem rekursiven Aufruf in Scheme?
Ich möchte als Ergebnis #f oder #t erreichen. Vielen Dank im Voraus.
(define calculate(lambda (List sum1 sum2)
(cond ((null? List)(if (> sum1 sum2) (- sum1 sum2) (- sum2 sum1)))
((> (calculate (cdr List) (+ sum1 (car List)) sum2)(calculate (cdr List) sum1 (+ sum2 (car List))))
(calculate (cdr List) sum1 (+ sum2 (car List))))
(else (calculate (cdr List) (+ sum1 (car List)) sum2)))))
Danke Morales: (cond ((null? List) 0) Wenn wir Anfangswert für Liste ist Null dann können wir positive und negative Rückgabewert haben. Also wollte ich #t für positiv (wahr) und # f für negativ e (falsch) unter Verwendung der Bedingung in der Lambda-Funktion. – Pat