1
A
回答
0
這裏是一個例子。函數squares
生成第一個方形數字的列表。爲了生成該列表,它使用索引i
遍歷數字0,...,n-1。
(define (squares n)
(define (loop i)
(if (= i n)
'()
(cons (* i i) (loop (+ i 1)))))
(loop 0))
(squares 10)
1
首先for
#lang racket
中純粹是爲副作用。通常你會想要其他變體,如for/map
和for/fold
,最終產生一個值。
球拍是Scheme的後代,它的所有循環只是應用遞歸函數的語法糖。作爲一個例子,do
循環:
(do ((vec (make-vector 5))
(i 0 (+ i 1)))
((= i 5) vec)
(vector-set! vec i i))
; ==> #(0 1 2 3 4)
在現實中的語言沒有do
作爲原始。相反,實施通常有一個宏,使得它成爲本(或類似的東西):
(let loop ((vec (make-vector 5)) (i 0))
(if (= i 5)
vec
(begin
(vector-set! vec i i)
(loop vec (+ i 1)))))
這當然只是糖的這個:
((letrec ((loop (lambda (vec i)
(if (= i 5)
vec
(begin
(vector-set! vec i i)
(loop vec (+ i 1)))))))
loop)
(make-vector 5) (i 0))
當然letrec
的,也是糖..它在某種程度上只是使用lambda
。
相關問題
- 1. while循環在球拍?
- 2. 如何在球拍中循環?
- 3. 在球拍中循環播放列表
- 4. 方案(球拍) - 循環庫
- 5. 爲什麼球拍代碼中的for循環速度太慢
- 6. 在open cv中實現For循環?
- 7. 在simulink模型中實現'for'循環
- 8. 方案:球拍中的循環功能
- 9. 如何在while循環中實現for循環?
- 10. 實施球拍
- 11. 如何在4級嵌套for循環塊中實現parallel-for
- 12. For循環在Javascript中的for循環
- 13. 發現在for循環
- 14. 如何實現使用for循環?
- 15. WordPress的:如何實現for-each循環?
- 16. 用球拍實現擴展功能
- 17. 在球拍/方案中的語言嵌套循環
- 18. 如何在Ruby中的方法中實現for循環
- 19. 實現循環
- 20. 從環球拍使用break
- 21. C#如何在for循環數組中實現Equal()方法?
- 22. 如何在shell中的「if」條件下實現「for」循環
- 23. 我如何在Java中實現這個for循環
- 24. 如何在Java中使用for循環時實現return語句?
- 25. 如何在for循環中實現一個TextView對象數組?
- 26. 我如何在javacc中實現循環(For)
- 27. Hadoop:在MapReduce中實現嵌套for循環[Java]
- 28. 在Golang模板中實現一個for循環
- 29. for循環for循環?
- 30. for循環for循環? - Javascript
當我使用這段代碼時,我得到一個數組:「define:預期只有一個表達式爲函數體,但是找到1個額外部分」 – Deesha
Derik如果您使用的是教學語言,您需要指定哪一個。 – soegaard
將內部定義包裝在本地。查找如何使用本地。 – soegaard