2014-09-13 230 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)