2014-09-13 172 views
0
(define list45 (map number->string(build-list 1000 values))) 
list45 
(first (list45)) 
(rest (list45)) 

错误: 应用程序:不是程序; 预计可应用于参数的程序在球拍中迭代通过列表

我正在尝试遍历我转换为字符串的列表。要做到这一点,我试图用第一个和其余的功能来查看列表中的所有内容。为什么我得到这个错误?

感谢

+0

唐不要把'list45'放在圆括号之间。这是'(第一名单45)'。 – uselpa 2014-09-13 18:30:58

回答

2

刚落括号周围名单:

(first list45) 
=> "0" 

(rest list45) 
=> '("1" "2" … "998" "999") 

在方案中,当你围绕()之间的事情,解释评价,由于不带参数的功能应用。由于list45不是函数,因此引发了“应用程序:不是过程”错误。在球拍很容易遍历列表:

(for ([e (in-list list45)]) 
    (displayln e)) 

但是,如果你想使用firstrest遍历列表中的某些原因,这里有一个可能性,使用明确的递归:

(define (iterate lst) 
    (unless (empty? lst) 
    (displayln (first lst)) 
    (iterate (rest lst)))) 

(iterate list45)