LINUX.ORG.RU

История изменений

Исправление quasimoto, (текущая версия) :

Эта функция чистая

Чистая функция по определению возвращает одни и те же значения при одних и тех же аргументах — твоя l возвращает разные при одном и том же b, значит она не чистая. Её можно очистить если передавать контекст явно (State monad, etc.) — b одно и то же, но контекст (окружение) разное, так что результаты разные, всё чисто, никаких проблем.

Так же можно очистить всё что угодно (ST, IO, Par, etc. monads) — все функции чистые, просто в остальных языках это не так (не возвращают там функции одно и то же при одинаковых результатах).

З.Ы.

Нормальные пацаны

http://dlang.org/function.html

http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html

http://lwn.net/Articles/285332

http://llvm.org/releases/2.2/docs/ReleaseNotes.html

http://llvm.org/releases/2.4/docs/ReleaseNotes.html

http://pimiddy.wordpress.com/2012/04/20/pure-functions-in-cc

Исходная версия quasimoto, :

Эта функция чистая

Чистая функция по определению возвращает одни и те же значения при одних и тех же аргументах — твоя l возвращает разные при одном и том же b, значит она не чистая. Её можно очистить если передавать контекст явно (State monad, etc.) — b одно и то же, но контекст (окружение) разное, так что результаты разные, всё чисто, никаких проблем.

Так же можно очистить всё что угодно (ST, IO, Par, etc. monads) — все функции чистые, просто в остальных языках это не так (не возвращают там функции одно и то же при одинаковых результатах).

З.Ы.

Нормальные пацаны

http://dlang.org/function.html

http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html

http://lwn.net/Articles/285332

http://pimiddy.wordpress.com/2012/04/20/pure-functions-in-cc