私は現在、演習1.22を実行しようとしています。これには、システムが実行されているミリ秒数を返すランタイムと呼ばれる関数が必要です。しかし、私の環境(R5RS)にはこれがないようです。時間、current-milliseconds、current-inexact-millisecondsなどもありません。
関数のプロファイルを作成するために、どの関数にアクセスできますか?経過したミリ秒数、マイクロ秒数などを返す関数はどれですか?もちろん、私は利用可能な最高精度のタイマーを好みます。
おそらく、DrRacketの言語を「ソースで宣言された言語を使用する」に切り替えて、ファイルをで開始するのが最善の方法です#lang racket
。current-seconds
そうすれば、や友達のような機能が利用できるようになります。
または、ここから入手でき、ここ(require profile)
に記載されているプロファイリングライブラリを使用することもできます。
最後に、 DrRacket用のNeilVanDykeのSICPライブラリを確認することをお勧めします。
その演習を行ったとき、 current-inexact-millisecondsを使用しました。ネタバレ注意:私のブログのSICP演習1.22:TimedPrimeTestで私の解決策を見ることができます。
ちなみに、私は同様の質問をした後にのみその問題を解決しました。SchemeにLispの「ランタイム」プリミティブに相当するものはありますか?