Функциональное программирование |
Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.
Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.
Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.
Jack Of Shadows
Всего в теме 5502 сообщения
Добавить свое сообщение
Отслеживать это обсуждение 
- Средства разработки. Языки программирования.
- Delphi 4 or Delphi 5
- Что приобрести в качестве средства разработки?
- Delphi6
- Delphi vs PowerBuilder
- Сравнение компиляторов
- Вот и вышла Delphi 7... Вы рады?
№ 942 23-08-2006 05:24 |  |
>>>Так что МТ - это и есть КА, точнее его расширение путем добавления >>>некоторых дополнительных условий (бесконечная внешняя память и т.д.).
Перечитал и понял наконец, почему Вы упорно отрицаете тьюрингов характер реальных компьютеров :)
Вас смущает бесконечная лента МТ! Так я же не эти детали имел в виду, когда "обозвал" реальные компьютеры "машинами тьюринга", а сам "характер" их функционирования, как дискретных преобразователей информации.
Но если уж Вы такой формалист, то исправляюсь:
Все реальные компьютеры - это машины Тьюринга с конечной памятью.
Теперь все нормально?
№ 941 23-08-2006 05:17 |  |
>>>Автоматы - да. Но вот машина Тьюринга может вычислить функцию
>>>Аккермана для любых агрументов, а конечный автомат и реальный
>>>компьютер не могут.
При всем уважении к Вам лично вынужден подвергнуть сомнению Ваше математическое образование. В любой самой захудалой литературе на эту тему Вы без труда обнаружите что-то подобное:
"Классы алгоритмов, реализуемых конечными автоматами и машинами Тьюринга совпадают (все что реализуемо на МТ, реализуемо и на КА, и наоборот"
У меня сейчас нет времени, но где-то на полке у меня лежит пара книг, где об этом сказано четко и ясно - найду, приведу точную цитату.
А пока Интернет ближе, чем книжная полка, то читайте:
"Машина Тьюринга является расширением модели конечного автомата и, согласно тезису Чёрча — Тьюринга, способна имитировать все другие исполнители (с помощью задания правил перехода), каким-либо образом реализующие процесс пошагового вычисления, в котором каждый шаг вычисления достаточно элементарен".
Так что МТ - это и есть КА, точнее его расширение путем добавления некоторых дополнительных условий (бесконечная внешняя память и т.д.).
Понимаю, что можно не верить мне, литературным источникам и источникам в сети. Но всему же есть предел :)
№ 940 Удалено модератором | |
№ 939 Удалено модератором | |
№ 938 23-08-2006 02:18 |  |
Ответ на »сообщение 927« (Как слышно? Приём!)
___________________________
Вроде есть ещё аналоговые компьютеры. Или это недокомпьютеры в тупике?
Оооо! Компьютеры на операционных усилителях! Это ваще супер! :-)
Скорость выполнения параллельных расчётов просто обалденная!
Вот только точность довольно низкая... :-(
№ 937 Удалено модератором | |
№ 936 Удалено модератором | |
№ 935 23-08-2006 02:03 |  |
Артём, вы предлагаете перемножить матрицы из любопытства
на LispWorks'е за 1000$ из любопытства и ждёте, что все бросятся.
Давайте на чём нибудь бесплатном - Common Lisp, например.
С удовольствием повозимся. Заодно сбудется мечта Jack'а -
перекрестить кого-нить в свою веру.
"Меня и обмануть несложно, я сам обманываться рад!"
Вообще предложение - может интересные примерчики
рассмотрим на ФЯ и ИЯ. Игра Конвея Life, если интересно.
Allegro CL не предлагать.
За книжки засесть - оно правильно, но ещё надо пахать пашенку,
с друзьями злоупотреблять вниманием, любоф, прогулки при луне
и многие другие прелести жизни.
Оказывается, что реально вычислимых значений функций Аккермана
при n>2 можно по пальцам пересчитать.
№ 934 23-08-2006 02:03 |  |
Ответ на »сообщение 930« (Артем)
___________________________
Так укажите же, в конце концов, какую реализацию ФЯ нам выбрать?
Да кстати, все мои многочисленные призывы к вам типа "выбирайте", "попробуйте" итд - это все конечно чистая риторика.
Я ведь прекрасно понимаю что дальше трепа вы не пойдете.
Я просто надеюсь, что кто то другой (не вы) может вынести из этого обсуждения мысль, что он действительно имеет выбор. Что он действительно может наконец то попробовать ФП не как игрушку - а не реальном проекте.
Например web development. Ниша уже вполне созрела, и адекватные инструменты уже есть.
И если кто то хочет попробовать, и у него есть вопросы (какие библиотеки, какие сервера итд итп)
то на все это можно получить ответ.
Но все это не для вас. Вы так и будете ходить вокруг да около и флудить здесь.
What a waste of time.
№ 933 Удалено модератором | |
Добавить свое сообщение
Отслеживать это обсуждение 
Дополнительная навигация: |
|