2014 dxdy logo

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

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




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


11/12/14
893
goodbigbeer в сообщении #1083892 писал(а):
Что тут по-вашему чистое?


"Чистота" в ФП это когда результат функции от одних и тех же аргументов всегда один и тот же. Например вычислив 1 раз fact( 5 ) можно везде по программе заменить текст fact( 5 ) на результат и это не приведет ни к каким side-effect-ам. Торжество подстановки как раз. Естественно fact( 10 ) нужно будет расписывать и подставлять по другому.

Нет ничего невозможного в том чтобы написать чистую функцию executeLispProgram( programText ), которую, взяв конкретный programText, можно расписать в конечный результат подстановками.

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


20/12/15

14
aa_dav в сообщении #1083898 писал(а):
Нет ничего невозможного в том чтобы написать чистую функцию executeLispProgram( programText ), которую, взяв конкретный programText, можно расписать в конечный результат подстановками.

Так я с этим не спорю, если выкинуть из языка IO, set и любые их аналоги, Вы и получите чистую модель. Только речь шла об обратном.

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


11/12/14
893
goodbigbeer в сообщении #1083900 писал(а):
Так я с этим не спорю, если выкинуть из языка IO, set и любые их аналоги, Вы и получите чистую модель.


А зачем выкидывать? В том то и суть, что с помощью IO, или, более общно - world, мы откладываем выписывание подстановок на этап самого исполнения программы. Результат как раз в том, что чистота не нарушается, хотя программа и эмулирует состояние со всеми вытекающими.
Т.е. programText может быть и на "нечистом" языке - функция execute всё равно можно сделать чистой.

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


20/12/15

14
aa_dav в сообщении #1083903 писал(а):
может быть и на "нечистом" языке - функция execute всё равно можно сделать чистой.

Повторяю в третий раз, я не говорил, что на нечистом языке нельзя выразить чистый, я говорил об обратном: с помощью чистой подстановочной модели невозможно выразить/реализовать модель с состоянием. Иными словами, мы можем рассматривать подстановочную модель как частный случай любой муттабельной.

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


11/12/14
893
goodbigbeer в сообщении #1083905 писал(а):
Повторяю в третий раз, я не говорил, что на нечистом языке нельзя выразить чистый, я говорил об обратном: с помощью чистой подстановочной модели невозможно выразить/реализовать модель с состоянием. Иными словами, мы можем рассматривать подстановочную модель как частный случай любой муттабельной.


Так я и сказал - можно на чистом языке сэмулировать нечистый. Как это делается объяснялось в начале темы. Чистота языка не нарушается при введении концепции world, потому что свойство "при тех же аргументах функция возвращает тот же результат" не нарушается. А только оно и означает чистоту. Другое дело, что world каждый раз получается разный - это то и приводит к тому, что "выписывание подстановок" откладывается на этап самого исполнения программы. Нельзя заранее расписать то, что еще неизвестно. А вот по мере прояснения - выписываем. Так оно на концептуальном уровне и работает в интерпретаторах.

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


20/12/15

14
aa_dav в сообщении #1083907 писал(а):
Чистота языка не нарушается

Не может быть "не нарушено" то чего нет. Я согласен с Вами, что с помощью, например, грязного лиспа можно выразить все то, что в чистой подстановочной модели, можно просто не изменять ничего, на этом и закончим.

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


11/12/14
893
На чистых языках можно написать любую программу которую можно написать на нечистых языках. Как грица всё оно полно по Тьюрингу.

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

Если это до сих пор непонятно - то да, смысла особого толочь воду в ступе нет.

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


20/12/15

14
aa_dav в сообщении #1083907 писал(а):
можно на чистом языке сэмулировать нечистый

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

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


16/02/13
4214
Владивосток
goodbigbeer в сообщении #1083905 писал(а):
с помощью чистой подстановочной модели невозможно выразить/реализовать модель с состоянием
Ерунду какую-то говорите. С помощью, скажем, предельно чистых грамматик Ван Вейнгаардена вполне себе выражается и синтаксис, и семантика языка. Просто муторно.

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


20/12/15

14
aa_dav в сообщении #1083914 писал(а):
Как грица всё оно полно по Тьюрингу.

Только вот, во-первых, это всего лишь гипотеза, которая не доказана, во-вторых, она опровергнута Карлом Хьюиттом, который доказал, что существуют алгоритмы нереализуемые на машине тьюринга, в том числе НМТ, и, в третьих, если даже предположить, что к примеру, лисп, тьюринг-полон, отсюда еще не следует, что машина тьюринга "лисп-полна".

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


11/12/14
893
goodbigbeer в сообщении #1083915 писал(а):
на чистом лямбда-исчислении


Я не уверен насчёт лямбда-исчисления, я его не знаю. Но помнится там был Y-комбинатор как средство реализации рекурсии. У меня это вызывает подозрения, что там отсутствует концепция идентификаторов в привычном для программирования смысле и что это может в свою очередь повлечь - мне непонятно.
Но с чистым кодом на лиспе уверяю вас - никаких проблем нет.

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


20/12/15

14
aa_dav в сообщении #1083918 писал(а):
Но с чистым кодом на лиспе уверяю вас - никаких проблем нет.

И я Вас уверяю ровно в том же, причем уже 4-й раз, это как-то смешно уже выглядит.

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


11/12/14
893
goodbigbeer в сообщении #1083917 писал(а):
Только вот, во-первых, это всего лишь гипотеза, которая не доказана, во-вторых, она опровергнута Карлом Хьюиттом, который доказал, что существуют алгоритмы нереализуемые на машине тьюринга


Еще раз:
Цитата:
На чистых языках можно написать любую программу которую можно написать на нечистых языках.

Тонкости с Тьюрингом не имеют значения.

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


20/12/15

14
aa_dav
Кстати, странно, что Вы, по-вашим же словам, не знаете лямбда-исчисления, беретесь рассуждать о функциональном программировании. Я напомню, что LC является теоретической моделью, и без знакомства с ней браться за рассуждения об ФП на сколько-нибудь серьезном уровне не стоило бы...

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


11/12/14
893
goodbigbeer в сообщении #1083927 писал(а):
Кстати, странно, что Вы, по-вашим же словам, не знаете лямбда-исчисления, беретесь рассуждать о функциональном программировании. Я напомню, что LC является теоретической моделью, и без знакомства с ней браться за рассуждения об ФП на сколько-нибудь серьезном уровне не стоило бы...


По вашему невозможно изучить ФП по книжке типа SICP, где не даётся лямбда-исчисление?

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

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



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

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


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

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