История изменений
Исправление
dave,
(текущая версия)
:
Да, с boxed-unboxed тоже надо аккуратно. И на эту тему есть прагмы. Вообще, если посмотреть на код в стандартных библиотеках, то он обычно весь напичкан прагмами.
И строгие вычисления тоже могут помочь ускорить код там, где они имеют смысл. Как в определениях полей типов, так и в let.
Еще есть rewriting rules, когда можно самому задать, как сокращать код в некоторых конкретных случаях. Тоже через прагмы.
По себе могу сказать, что писать на haskell эффективный код вполне можно, но писать такой код на любом языке непросто, даже на java и си++. Везде есть нюансы
Исходная версия
dave,
:
Да, с boxed-unboxed тоже надо аккуратно. И на эту тему есть прагмы. Вообще, если посмотреть на код в стандартных библиотеках, то он обычно весь напичкан прагмами.
И строгие вычисления тоже могут помочь ускорить код там, где они имеют смысл. Те же bang patterns, как в определениях полей типов, так и в let.
Еще есть rewriting rules, когда можно самому задать, как сокращать код в некоторых конкретных случаях. Тоже через прагмы.
По себе могу сказать, что писать на haskell эффективный код вполне можно, но писать такой код на любом языке непросто, даже на java и си++. Везде есть нюансы