2012-10-09 84 views
2

makelist是一個過程,它接收一個項目和一個整數n並返回項目n的次數。返回符號n次數

(define (makelist (n item) 
    (cond 
     [(null? item) '()] 
     [else (cons item (makelist (- n 1)))]))) 

我的程序返回語法錯誤,有人可以幫我嗎?

回答

1

你可以使用:(make-list n item) :)

你的語法錯誤是由於不正確的define

它應該是:

(define (makelist n item) ... 

請注意,你有n前額外(

+0

哇,有什麼小錯誤。我沒有注意到,謝謝。 –

+0

@FrankieV。 - 如果您要在lisp中編程任意長度的時間,請查看[autopairs](http://www.emacswiki.org/emacs/AutoPairs)或[paredit](http://www.emacswiki。 org/emacs/ParEdit)或兩者。 [熒光筆](http://www.emacswiki.org/emacs/HighlightParentheses)也不會傷害。我相信無論您使用哪種編輯器,都可以使用類似的實用程序,即使它不是Emacs。我不知道Lisper是否會手動追蹤parens。 – Inaimathi

+0

事實上,Vim有一個Scheme語法模塊,它將幫助跟蹤括號;) – itsbruce