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, Супермодераторы



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

Сейчас этот форум просматривают: dgwuqtj


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

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