1. ホーム
  2. scheme

[解決済み] racketでforループを実装する

2022-02-14 11:10:04

質問

再帰的な関数の中にforループを使って実装しようとしたことがあります。racketに既に実装されている"for"を使用することはできません。このような場合、実装する方法はあるのでしょうか?

注:中級者向け言語を使っています。

どのように解決するのですか?

以下はその例です。この関数は squares はリストを生成し、最初の n の2乗数です。このリストを作成するために、0, ..., n-1の数をインデックスを使ってループしています。 i .

 (define (squares n)
    (define (loop i)
      (if (= i n)
          '()
          (cons (* i i) (loop (+ i 1)))))
    (loop 0))

 (squares 10)