Будет ли возможность объявлять функции Lisp «чистыми» быть полезными?

Я много читал о Haskell в последнее время, и преимущества, которые оно происходит от Чисто Функциональный язык. (Я не заинтересован в обсуждении монадских для Lisp), это имеет смысл для меня (по крайней мере, логически) изолировать функции с побочными эффектами как можно больше. Я использовал SetF и другие разрушительные функции много, и я признаю необходимость в них в Lisp и (большую часть) ее производных.

Здесь мы идем:

  1. что-то вроде (объявить чистую) Потенциально помогите оптимизирующим компилятором? Или это содействие, потому что она уже знает?
  2. будет ли декларационная помощь в доказании функции или программы или, по меньшей мере, подмножество, которое было объявлено чистым? Или это опять-то, что не нужно Потому что это уже очевидно для программиста и компилятора и провера?
  3. Если для программы было бы полезно для программы R для компилятора для обеспечения применения чистоты для функций с этой декларацией и добавление к читабельности / поддержанию программ LISP?
  4. Есть ли кто-либо из этого имеет смысл? Или я слишком устал даже думать прямо сейчас?

Я был бы признателен за любые идеи здесь. Информация о внедрении или платежеспособности компилятора приветствуется.

Отредактируйте

, чтобы уточнить, я не собирался ограничить этот вопрос общей лиспе. Это ясно (я думаю) не применяется к определенным производным языкам, но мне также интересно, если некоторые особенности других ударов могут быть склонны поддержать (или нет) такого рода объекта.

8
задан Keith Layne 31 August 2011 в 18:01
поделиться