2012-12-16 67 views
0

R5RS4.2.4迭代 -Scheme迭代如何工作?

(let ((x '(1 3 5 7 9))) 
    (do ((x x (cdr x)) 
     (sum 0 (+ sum (car x)))) 
     ((null? x) sum))) 

什麼的用法 - cdrcar

什麼與此x在線路發生 -

(do ((x x (cdr x)) 
      (sum 0 (+ sum (car x)))) 
      ((null? x) sum)) 
+1

雖然從規範學習計劃可能工作,我請求你考慮讀一本書。有很多免費的例如着名的計算機程序結構和解釋。 – user1890202

回答

1
  • 車=第一(在列表中的第一個元素)
  • CDR =休息(如一切,但名單中的第一個元素)

循環將列表中的項目相加。

+0

根據迭代語法,你能解釋什麼是''和''這裏? – URL87

+0

do中的第一個子句聲明瞭局部變量x(初始化爲周圍x並且每次迭代用(cdr x)替換)和sum(初始化爲0並且用每次迭代的sum plus(car x)代替)。一旦第二個子句中的第一個子句爲真(x爲空),則返回sum的值。 –