LINUX.ORG.RU

Пользуйте поиск по форуму

anonymous
()

неплохо бы еще русский подучить. и использовать поиск.

ocaml, scheme еще. но это не чисто функциональные.

hatefu1_dead
()
Ответ на: комментарий от CrazyPit

>да и схема (но тут это уже имхо придирки)

В схеме есть присваивание, значит уже не чисто функциональный.

seiken ★★★★★
()
Ответ на: комментарий от Begemoth

>Дело не в присваивании, а в наличии побочных эффектов у процедур. Присваивание лишь частный случай.

Значит, императивный язык может не иметь механизма изменения состояния переменных и считаться императивным только из-за того, что позволяет кроме значения ф-ции выполнить какое-либо другое осмысленное действие. Например, ф-ция возвращает какое-то значение и выводит на экран строку. Состояние системы не изменяется после вызова такой ф-ции, она делает одно и то же (при одинаковых параметрах) в независимости от места вызова. Я правильно понял?

seiken ★★★★★
()
Ответ на: комментарий от seiken

ага, такая функция уже не будет обладать свойством referential trancparency два ее вызова нельзя заменить одним (т.к. побочные эффекты будут различаться). Поэтому ML и называют не чисто функциональным языком, в Haskell операции ввода/вывода загнаны в монаду IO, которая позволяет писать на Haskell программы в _императивном_ стиле. В "A Gentle Introduction to Haskell" Haskell называется лучшим императивным языком.

Begemoth ★★★★★
()
Ответ на: комментарий от seiken

Состояние системы изменится, т.к. изменится состояние мира.

Begemoth ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.