[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: kylix 2



On 2003.01.09 at 18:52:28 +0200, Andrei Sosnin wrote:

> 
> 
> 
> Их истинного (подразумеваемого) значения в данном контексте я не понял, 
> поэтому, считая, что "языки структурны, потому что оперируют структурами 
> данных" и что языки функциональны, когда описывают четкие функции 
> программы (я подменил это понятие понятием процедурного метода 
> программирования), я и использовал эту идею, которая подходила под то, 
> как я понял тему. :-)

Основной признак функционального языка - отсутствие side-эффектов у
функций. То есть все, что передается в функцию, передается через
параметры, все что возвращается - возвращается через результат.
Это как раз то ограничение, благодаря которому становятся возможными
применяющие функционалы, мемоизация и куча других вкусных фишек.

С этой точки зрения C - не функциональный язык, так как функции в нем
могут иметь и очень часто имеют побочные эффекты.

Т.е. повторный вызов функции (скажем printf) с теми же аргументами
компилятор не имеет права заменить на закэшированное значение первого
вызова.


-- 
Victor Wagner			vitus@ice.ru
Chief Technical Officer		Office:7-(095)-748-53-88
Communiware.Net 		Home: 7-(095)-135-46-61
http://www.communiware.net      http://www.ice.ru/~vitus



Reply to: