2012-10-09 53 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