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
4195
Владивосток
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, Супермодераторы



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

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


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

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