Lui*_*ida 5 scheme libraries racket
我有DrRacket版本5.0.2,我已经花了样3小时了寻找正确的库进行while,dolist和dotimes工作.我知道如何使用它们但我找不到合适的库.当我输入dotimes例如它告诉我未知的标识符.
PS:你必须使用define-syntax才能定义这些循环吗?我试过(require srfi/42)但它不起作用.我正在使用#lang scheme.
您可以使用Racket的内置迭代表单:
而不是(dolist (x some-list) body-forms ...),你可以写(for ((x some-list)) body-forms ...)
而不是(dotimes (i n) body-forms ...),你可以使用(for ((i (in-range 0 n))) body-forms ...)甚至简单地(for ((i n)) body-forms ...),只要n是一个非负整数.
您可以编写语法规则宏来将CL风格的循环转换为Racket风格的循环,但它可能不值得.球拍的for-forms比更灵活dotimes或dolist自己,因为你可以很容易地使用它们一次遍历多个序列.