3
私が持っている機能:スキームinfinteループとメモリ
((lambda (x) (x x))
(lambda (x) (x x)))
をし、それが無限ループを生成します。私の質問は、メモリマップについてです。私たちはスタックがオーバーフローすることを知っています。なぜなら、私は各呼び出しごとに新しいフレームを開くからです。しかし、何がヒープになりますか?私が理解しているように、すべての呼び出しでヒープに新しいクロージャが作成されますが、これについてはわかりません。
ような何かを行うので、私はループをinifinteに来てなぜですか? –
紙で評価してみてください。 –
いいえ、SchemeはTCOを要求しません。適切なテールコール(PTC)を要求します。つまり、無制限のテールコールは無制限のメモリを消費できません。 TCOはPTCを実装する方法の1つですが、他にも「チェイニー・オン・ザ・MTA」などのアプローチがあります。 –