2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.
 
 Отношение между декларативным и функциональным
Сообщение29.10.2015, 11:57 


29/10/15

19
Во многих источниках, по сути, в большинстве, почему-то принято связывать функциональную парадигму с декларативностью. Я много думал об этом, и совершенно не могу найти связи.

Прежде всего, прямое противопоставление тут -- императивное vs декларативное. С этим все понятно.
Код:

doThing -- императивное
thing -- декларативное

makeParagraphWithContent("this is a text") -- императивное
ParagraphWithContent("this is a text") -- декларативное



Просто мы в одном случае как бы даем инструкции процессору, а в другом как-бы декларируем, в этом и вся разница. Вопрос точки зрения и стиля, по большому счету.

Пусть у нас будет рекурсивный факториал, без циклов и присваиваний внутри -- функциональный стиль . Мы можем назвать эту функцию countFactorial.

Пусть у нас будет факториал с циклом внутри, кто нам мешает назвать его factorial?

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

На самом деле, не существует устоявшегося и правильного термина для программирования с деструктивными присваиваниями. Но оно не имеет отношения к императивности равно как и к декларативности. Это ортогональные понятия. Соответственно и связи между функциональностью и деклартивностью тоже не существует на мой взгляд. Вы согласны с этим?

 Профиль  
                  
 
 Re: Отношение между декларативным и функциональным
Сообщение29.10.2015, 17:01 
Аватара пользователя


29/05/11
227
Красноармейск, Донецкая обл.
При чём тут деструктивное присваивание?

Главное достояние ФП, без чего оно не может быть функциональным, это возможность писать чистые функции, которые преобразуют функции-аргументы в функции-результат.

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

 Профиль  
                  
 
 Re: Отношение между декларативным и функциональным
Сообщение29.10.2015, 17:06 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
aboutcard в сообщении #1067983 писал(а):
Во многих источниках
В каких именно? Цитаты в студию в топик.

 Профиль  
                  
 
 Re: Отношение между декларативным и функциональным
Сообщение29.10.2015, 17:36 


29/10/15

19
Mysterious Light в сообщении #1068096 писал(а):
При чём тут деструктивное присваивание?

Mysterious Light в сообщении #1068096 писал(а):
Главное достояние ФП, без чего оно не может быть функциональным, это возможность писать чистые функции

Даже не знаю, что тут более уместно, смеяться или плакать.

-- 29.10.2015, 18:44 --

Aritaborian в сообщении #1068101 писал(а):
Цитаты в студию в топик.

Ну, вот, хоть та же википедия, чтобы не заморачиваться, первое что попалось.
Цитата:
Functional and logical programming languages are characterized by a declarative programming style.

 Профиль  
                  
 
 Re: Отношение между декларативным и функциональным
Сообщение29.10.2015, 17:54 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
aboutcard в сообщении #1068117 писал(а):
Даже не знаю, что тут более уместно, смеяться или плакать.
Здесь было бы уместно не паясничать, а привести аргументы, в соответствии с которыми вы считаете мнение собеседника неверным.
aboutcard в сообщении #1068117 писал(а):
Ну, вот, хоть та же википедия
А что вам не нравится в этой цитате из Вики? Вроде всё логично и верно. (BTW, если уж вы сказали, что
aboutcard в сообщении #1067983 писал(а):
Во многих источниках, по сути, в большинстве
потрудитесь привести побольше источников. И зарубите на носу: Википедия вообще не является источником.)

 Профиль  
                  
 
 Re: Отношение между декларативным и функциональным
Сообщение29.10.2015, 17:57 


29/10/15

19
Aritaborian
Если бы Вы были в теме, читали бы литературу по этой теме, у Вас не возникло бы подобных вопросов. Мне лень тут распинаться, и доказывать очевидный факт.

-- 29.10.2015, 19:00 --

Aritaborian в сообщении #1068121 писал(а):
Здесь было бы уместно

Я как раз, думаю, что влезать в тему, в которой понимаешь чуть меньше чем ничего, как минимум неуместно, если не сказать больше. Мы же не на базаре, правда? Что я должен ему доказывать по-вашему? То что присваивание имеет отношение к чистоте? Опровергать нонсенс с пеной у рта?

 Профиль  
                  
 
 Re: Отношение между декларативным и функциональным
Сообщение29.10.2015, 18:37 
Админ форума
Аватара пользователя


19/03/10
8952
 !  Тема закрыта по причине
Toucan в сообщении #1068141 писал(а):
aboutcard заблокирован по причине "клон"
и будет удалена.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group