2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:25 


07/05/15

110
arseniiv в сообщении #1017340 писал(а):
Возвращает-то возвращает, но при этом ещё и меняет. А sum ничего не меняет, и именно потому она чистая.


Хорошо. Если данная функция будет манипулировать муттабельным объектом не изменяя его, она будет чистой, правильно я понял? Кстати, с точки зрения семантики ООП, сама функция там ничего не меняет, она только отсылает сообщение объекту.

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:26 


11/12/14
893
Dmitriy40 в сообщении #1017347 писал(а):
Как может быть чистой функция, вызывающая грязные методы и соответственно зависящая от побочных эффектов?!


Ну в общем то в этом и недопонимание возникло некоторое - формально функция чиста, но из-за того что её "окунули в грязь" её _применение_ уже не чисто. Сам вообще конктекст. Как бы и не сама функция, но то в чём она участвует не чисто.

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:34 
Заслуженный участник


20/08/14
11177
Россия, Москва
aa_dav в сообщении #1017349 писал(а):
формально функция чиста
Нет, вот с этим и не согласен - она нечиста потому что вызывает грязные методы (а это задано явно прямо в определении фунции). Точка. Куда там её окунули или как использовали - дело второе.

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:35 
Заслуженный участник
Аватара пользователя


06/10/08
6422
nondeterminism в сообщении #1017345 писал(а):
В нескольких местах. В частности -- в фундаментальном -- Барендрегт" лямбда исчисление - его синтаксис и семантика"
То, что описано в Барендрегте - это не единственная семантика, и семантика с возможностью параллельного выполнения непересекающихся редексов ей эквивалентна.

nondeterminism в сообщении #1017345 писал(а):
Совершенно непонятно, как из разных стратегий вычислений следует параллелизм. То что непересекающиеся редексы можно редуцировать параллельно не значит, что ФП является основой для параллелизма. Любые непересекающиеся выражения и их наборы можно выполнять параллельно. это не из той оперы вообще.
Нет, вот в языке с мутабельностью в выражении f(z) + g(z) вообще говоря непересекающиеся выражения f(z) и g(z) нельзя параллельно выполнять, ибо они могут менять z. В некоторых языках это "исправляется" тем, что данное выражение дает undefined behaviour, не знаю, что там у Вас в JS.

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:38 


07/05/15

110
Xaositect в сообщении #1017336 писал(а):
разные стратегии редукции приводят к одному и тому же результату


кстати, разные стратегии редукции не приводят к тому же результату
Код:
((lambda(x) another_thing)(infinite loop))

Данное выражение не выполнится при аппликативном порядке.

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:43 
Заслуженный участник
Аватара пользователя


06/10/08
6422
У меня по дефолту в голове типизированное лямбда-исчисление, там strong normalization и все в порядке.

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:44 
Заслуженный участник


27/04/09
28128
Dmitriy40 в сообщении #1017359 писал(а):
Нет, вот с этим и не согласен - она нечиста потому что вызывает грязные методы (а это задано явно прямо в определении фунции).
Ничего она не вызывает, она возвращает замыкание (и больше ничего не делает).

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:45 


07/05/15

110
Xaositect в сообщении #1017360 писал(а):
нельзя параллельно выполнять, ибо они могут менять z


Опять же, совершенно не понятно. Внешние функции не могут изменить z в семантике ООП и акторов. Они могут ему послать сообщение, чтобы он изменил что-то внутри себя. Объект инкапсулирует свое состояние.

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:47 
Заслуженный участник
Аватара пользователя


06/10/08
6422
nondeterminism в сообщении #1017371 писал(а):
Опять же, совершенно не понятно. Внешние функции не могут изменить z в семантике ООП и акторов. Они могут ему послать сообщение, чтобы он изменил что-то внутри себя. Объект инкапсулирует свое состояние.
Результат-то все-равно может зависеть от того, кто первым успел.

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:47 
Заслуженный участник


27/04/09
28128
Вообще я удивляюсь, почему мы потакаем nondeterminism, обсуждая чистоту на примерах из JS, которые, в принципе, можно трактовать как захочется, потому что он очень сложен (стоит просто почитать, как работает new выражение). Почему мы не выбрали для этого язык, в котором вообще нет никаких функций, или все операции одинаково грязные?

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:54 


07/05/15

110
arseniiv в сообщении #1017374 писал(а):
на примерах из JS


Изначально, пример был не мой, я им просто воспользовался

arseniiv в сообщении #1017374 писал(а):
как работает new выражение


В нем нет ничего сложного, но оно не нужно в JS.
arseniiv в сообщении #1017374 писал(а):
нет никаких функций


А что есть такие?

-- 19.05.2015, 19:56 --

Xaositect в сообщении #1017373 писал(а):
Результат-то все-равно может зависеть от того, кто первым успел.


Только если актор позволит.

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 18:58 
Заслуженный участник


27/04/09
28128
nondeterminism в сообщении #1017379 писал(а):
В нем нет ничего сложного
А вы почитайте спецификацию. (Или она вам тоже не нужна, и не станете?)

nondeterminism в сообщении #1017379 писал(а):
А что есть такие?
Brainfuck, например. Это уже не язык?

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 19:01 


07/05/15

110
arseniiv в сообщении #1017385 писал(а):
А вы почитайте спецификацию. (Или она вам тоже не нужна, и не станете?)

Я знаю, как оно работает. Я лезу в спеки только за тем чего не знаю.
arseniiv в сообщении #1017385 писал(а):
Brainfuck, например. Это уже не язык?


Насколько я помню, там есть goto, это тот же самый funcall, только еще бонусом идет возможность нелокального выхода. Разница невелика

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 19:04 
Заслуженный участник
Аватара пользователя


06/10/08
6422
nondeterminism в сообщении #1017388 писал(а):
Насколько я помню, там есть goto, это тот же самый funcall, только еще бонусом идет возможность нелокального выхода. Разница невелика
Там нет неограниченного goto, там только циклы.

 Профиль  
                  
 
 Re: Слабость функциональной парадигмы
Сообщение19.05.2015, 19:09 


07/05/15

110
Xaositect в сообщении #1017392 писал(а):
Там нет неограниченного goto, там только циклы.


Странно. goto более фундаментален, чем циклы, циклы -- частный случай, а у них все наоборот. Значит это не примитивный ЯП, а язык с блекджеком:)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 106 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.

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



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

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


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

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