Выполняет ли MATLAB оптимизацию хвостового вызова?

Я недавно изучил Haskell и пытаюсь по возможности перенести чистый функциональный стиль в другой код. Важным аспектом этого является обработка всех переменных как неизменяемых, то есть констант. Для этого многие вычисления, которые могут быть реализованы с использованием циклов в императивном стиле, должны выполняться с использованием рекурсии, что обычно приводит к потере памяти из-за выделения нового кадра стека для каждого вызова функции. Однако в особом случае хвостового вызова (когда возвращаемое значение вызываемой функции немедленно возвращается вызывающей стороне), это наказание можно обойти с помощью процесса, называемого оптимизацией хвостового вызова (в одном методе это можно сделать с помощью по сути заменяя вызов на jmp после правильной настройки стека). Выполняет ли MATLAB совокупную стоимость владения по умолчанию или есть способ сообщить об этом?

13
задан Shea Levy 16 March 2011 в 14:31
поделиться