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