• Haskell stg Кажется вся эта петрушка с арностью функции push/enter'ом и eval/apply'ем нужна не тогда когда у функции мало аргументов, а тогда когда их больше чем нужно (точнее когда пять аргументов применяется к функции от двух, возвращающей функцию от трёх). Причём это справедливо только в особо полиморфных случаях, когда функция применяющая аргументы не очень хорошо знает к чему она их применяет. Чем же отличается функция ненасыщенная аргументами от простого замыкания, я всё равно не понимаю.

Replies (1)

  • @ndtimofeev, Это и есть замыкание. Простое. В stg вообще все, кроме примитивных типов — замыкание. А разница в том, что для насыщенной функции генерируется санк, который самозаменит себя значением после выполнения. А с ненасыщенной такого не будет.