私は学生で、スキーム言語が初めてです。私は効率的な関数を書こうとしています。関数の実行時間を計算する方法は既に知っていますが、知りたいのは、この関数のスタック (またはメモリ) 使用率を計算する方法です。私が知っているように、実行中にスタックで待機する命令の数が少ないほど、効率が向上します。
スタックで待機している命令の数をカウントする方法はありますか?
私は学生で、スキーム言語が初めてです。私は効率的な関数を書こうとしています。関数の実行時間を計算する方法は既に知っていますが、知りたいのは、この関数のスタック (またはメモリ) 使用率を計算する方法です。私が知っているように、実行中にスタックで待機する命令の数が少ないほど、効率が向上します。
スタックで待機している命令の数をカウントする方法はありますか?
いいえ、標準のスキームには「スタックで待機している命令の数をカウントする方法」はありません。
あなたがSchemeを学んでいるなら、効率、関数の実行時間、スタック/メモリの使用率に焦点を当てることは、まったく間違った焦点です. 「時期尚早の最適化は、プログラミングにおけるすべての悪 (または少なくともその大部分) の根源です。」D. Knuth - 質問しているレベルでの最適化に集中しすぎています。
アルゴリズムの計算の複雑さのレベルで考えるべきであり、アルゴリズムを再帰的に表現し始める場合は、Scheme が推奨するように、末尾再帰について学び始めます (Scheme は反復に対して最適化されることを保証するため)。