Racket do
Racket 的 do 表达式提供了一种执行具有状态的迭代的方式。它允许您定义一组迭代变量,并在每次迭代时更新它们的值,直到满足某个终止条件。
以下是 do 表达式的基本结构和用法示例:
基本结构
(do ([var1 init1 step1]
[var2 init2 step2]
...)
(end-test-expr final-expr)
body ...)
注意括号:final-expr 和 end-test-expr 要在同一个括号里面!
var1, var2, ...是迭代变量。init1, init2, ...是迭代变量的初始值。step1, step2, ...是每次迭代后更新变量的表达式。end-test-expr是终止条件表达式。final-expr是当终止条件为真时的返回值。body ...是循环体,每次迭代时执行。
示例代码
以下代码使用 do 表达式计算 1 到 10 的和:
(define sum
(do ([i 1 (+ i 1)]
[total 0 (+ total i)])
((> i 10) total)))
display sum ; 输出 '55
代码解释:
i是从 1 开始的迭代变量,每次迭代增加 1。total是累积和,每次迭代增加i的值。- 终止条件是
i大于 10,此时返回total。
本文作者:Maeiee
本文链接:Racket do
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!
