DrRacket/Schema: Vertragsverletzung, Zahl erwartet?

Also ich habe 3 definierten Funktionen in scheme sumlist summiert alle zahlen in einer Liste, und meinen Sie, gibt mir den Mittelwert der Liste. mean2 Anrufe bedeuten und tut die gleiche Sache, aber ich bekomme eine Fehlermeldung. Es sagt, der Fehler kommt von sumlist Funktion.

(define (sumlist lst)(if(null? lst)0 (+(car lst)(sumlist(cdr lst)))))
(define mean (lambda x(/(sumlist x)(length x))))
(define mean2 (lambda x(mean x)))

Dies ist, wie rufe ich die Funktionen

(mean 1 2 3 4 5)
=>3               ;it works

(mean2 1 2 3 4 5)
+: contract violation
expected: number?
given: '(1 2 3 4 5)
argument position: 1st
other arguments...:
0

Ich bin immer noch neues zu Schema habe gerade eingeführt, um es Letzte Woche, aber es ist wirklich frustrierend..was mache ich falsch?

InformationsquelleAutor user2968401 | 2013-12-09
Schreibe einen Kommentar