0
所以我有3個函數定義在計劃中,sumlist列表中加入所有數字,並且意思是給我列表的意思。 mean2調用意味着並做同樣的事情,但我得到一個錯誤。它說錯誤來自sumlist函數。DrRacket /計劃:違反合同,預計數量?
(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)))
這是我如何調用函數
(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
我還是新太剛剛在上週推出其方案,但它確實是frustrating..what我做錯了什麼?
我討厭計劃,但你太棒了。謝謝 – user2968401
@ user2968401能夠回答Scheme問題的人會傾向於愛Scheme,所以說你討厭Scheme不太可能讓你愛上他們。我知道一個事實,即當我回避OP說他們討厭Scheme的問題時。 –
@ user2968401 - 這太遺憾了,因爲學習計劃可以是一種啓發性的體驗。部分原因是Scheme與傳統的「C風格」語言差別很大,在許多方面都更強大。你會想用一個很好的編輯器來修改括號(emacs,vim,也許是dr。racket?),並且還應該有一種不僅僅是「讓我盡最大努力通過這門課程」的態度 - 你似乎自從你發佈了這個:) –