Я знаю, что:В чем разница между частичной оценкой и функцией встраивания функционального языка?
- Функция встраивание должен заменить вызов функции с определением функции.
- Частичная оценка - это оценка известных (статических) частей программы во время компиляции.
Существует различие между двумя в императивных языках, таких как C, где операторы отличаются от функций. Однако существует ли разница между этими двумя функциональными языками, такими как Haskell, где операторы также являются функциями?
Различия между этими двумя функциями могут быть выполнены в выборочных частях программы, тогда как частичная оценка выполняется по всей программе (то есть ∃
против ∀
)?
В чем заключаются семантические различия между двумя методами оптимизации?
Из небольшого числа исследований мне кажется, что функция inlining, по сути, просто заменяет определение функции (имена переменных по модулю) на ее вызов сайта, оценка не выполняется, с целью снижения накладных расходов на вызов функции и предоставления возможностей для большей оптимизации на сайте вызова. Примером частичной оценки было бы преобразование '60 * 1000' в' 60000' или поиск некоторого выражения, которое можно свести к эквивалентному, но более простому. Я не совсем уверен в этом положении, поэтому я не буду публиковать его в качестве ответа, но это моя интерпретация. – bheklilr
Возможно, я спросил об этом, прежде чем дать свой ответ ниже: _why_ вы думаете, что на языке, где операторы также являются функциями, различия между вложением и частичной оценкой были бы разными? –