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