Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  23:14[Войти] | [Зарегистрироваться]
Обсуждение темы:
Функциональное программирование

Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.

Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.

Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.

 Jack Of Shadows

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 5502 сообщения

Добавить свое сообщение

Отслеживать это обсуждение


Смотрите также обсуждения:
Средства разработки. Языки программирования.
  • Delphi 4 or Delphi 5
  • Что приобрести в качестве средства разработки?
  • Delphi6
  • Delphi vs PowerBuilder
  • Сравнение компиляторов
  • Вот и вышла Delphi 7... Вы рады?

  • <<<... | 4332—4323 | 4322—4313 | 4312—4303 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 119


    № 4322   21-07-2008 00:38 Ответить на это сообщение Ответить на это сообщение с цитированием
    Появился ещё один отчёт о трёхдневном соревновании ICFPC-08.
    Сама задача заключалась в дистанционном управлении роботом-ровером, посланным с Земли на Марс -- модная тема. Нужно было привести робот на базу, не упав в кратер (ровер разобьётся) и не попавшись в лапы злобных марсиан, которые принесут робота в жертву своему богу (ох уж эти религиозные фанатики, даже на Марсе от них нет покоя :о)...

    Хорошо известный в узких кругах рускоязычных функциональщиков Дмитрий Астапов aka Adept , как и раньше, описал, что делала его команда эти три дня.
    Работали они на Хаскелле, затронули вопросы не только управления роботом в нелёгких условиях, но также и вопросы построения и отладки необходимого ПО на функциональном языке...

    In Soviet Union, the rover moons you! -- отчет о ICFPC'08, часть 1
    часть 2
    часть 3


    № 4321   20-07-2008 06:28 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4318« (Илья Ермаков)
    ___________________________

    Практически в нашем распоряжении имеются достижения функционального и логического или реляционного программирования. Все они обладают весьма ограниченными возможностями для обработки даже проблемно-ориентированных языков.

    Проблемно-ориентированные языки -- это DSL, как я понял?
    Функциональные языки, хоть Лисп, хоть Хаскелл, прекрасно зарекомендовали себя в области реализации DSL'ей...


    Кроме того, системы, построенные на базе языков программирования типа lisp и ему подобных, практически не поддаются диагностике.

    Опять же, какие языки авторы называют подобными лиспу? Лисп -- это мета-язык, язык, на основе которого можно построить любой нужный вам язык, любой проблемно-ориентированный язык... Некоторые сравнивают в этом плане форт с лиспом, но, имхо, это слишком натянутые сравнения. Боюсь, с лиспом в этом плане мало какой язык может сравниться, ну разве что какой-нибудь Немерле...

    Опыта диагностики ошибок в программах на Лиспе я сам не имею (хотя дебаггер в DrScheme очень прост в использовании, как мне показалось). Ещё надо дождаться второго местного лиспера -- Lisp Hobbyist'а... ;о)


    Этот факт известен как проблема lisp-отладчика, т. е. проблема не существования алгоритма (способа) узнать, почему некоторая программа ведет себя именно таким образом, иначе как проделав в точности те же действия и в той же последовательности. Некоторые возможности решения этой проблемы предусматриваемые в lisp-подобных языках типа ML и Miranda ситуацию кардинально не изменяют.

    Эта фраза опять же вызывает вопросы...

    Вообще, упоминание в этой статье таких давно вымерших языков, как ML и Miranda, наводит на подозрение, что и сама статья писалась в древности, когда ещё не было того же Хаскелла, т.е. где-то конец 80х, начало 90х годов (Хаскелл сам появился как раз в то время, но был относительно малоизвестен, особенно у нас)...

    Что значит -- "ситуацию кардинально не изменяют"???
    Equational reasoning, проповедуемый функциональщиками хаскеллерского толка, как раз в корне уничтожает эту проблему. Так же, как и теорему в математике можно доказать на листке бумаги, так же и программу на хаскелле можно понять с помощью рассуждений по индукции.

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


    № 4320   20-07-2008 06:08 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4319« (Jack Of Shadows)
    ___________________________

    >>> ML лиспоподобный язык ??? Либо они укурились? либо ML в глаза не видели.

    Ага, а коммерческая Миранда -- непосредственный предшественник бесплатного Хаскелла.
    Называть ML и Миранду лиспоподобными... Ну, может быть они это имели в иносказательном смысле? Типа -- необычные языки функционального семейства?
    Хотя ML и Miranda отличаются от лиспа не только синтаксически, но и семантически. Непонятно, что они хотели сказать...


    № 4319   19-07-2008 13:50 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4318« (Илья Ермаков)
    ___________________________
    Что имели в виду авторы из выдранного куска понять невозможно. А читать весь их труд у меня нет никакого желания.
    Что они имеют в виду под "получая от такой системы не удовлетворяющие нас решения" ? Ошибку или непонятный результат ?
    Если ошибку, то в лиспе есть очень мощный отладчик и трассировщик. Я им пользуюсь, всю необходимую мне информацию по всему стеку вызова функций получаю.
    Если непонятный результат, то тут помочь могут только логические языки типа пролога, которые автоматически выдают диагностику. У лиспа по сравнению с теми же языками семейства паскалей здесь есть преимущество, поскольку пролог в лисп встраивается очень легко. Например оба коммерческих лиспа Аллегро и Лиспворкс имеют встроенный пролог. А для бесплатных лиспов есть открытый же пролог.

    Поскольку вы читали статью, то это у вас надо спрашивать что авторы имели в виду, по крайней мере как вы это понимаете.

    А вот эта их фраза: Некоторые возможности решения этой проблемы предусматриваемые в lisp-подобных языках типа ML и Miranda ситуацию кардинально не изменяют.
    заставляет вообще усомниться в профпригодности авторов. ML лиспоподобный язык ??? Либо они укурились? либо ML в глаза не видели.


    № 4318   19-07-2008 11:02 Ответить на это сообщение Ответить на это сообщение с цитированием
    Приветствую уважаемых функциональщиков, да избегнут их на тернистых дорогах коварные побочные эффекты :-)

    Скажите пожалуйста, о чём идёт речь в следующем абзаце, что авторы имеют в виду:


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

    Кроме того, системы, построенные на базе языков программирования типа lisp и ему подобных, практически не поддаются диагностике. Иначе говоря, получая от такой системы не удовлетворяющие нас решения, мы не имеем гарантированной возможности заставить систему сообщить нам, почему, по какой причине и внутри какой из составляющих ее программ зародилась нежелательная ситуация.

    Этот факт известен как проблема lisp-отладчика, т. е. проблема не существования алгоритма (способа) узнать, почему некоторая программа ведет себя именно таким образом, иначе как проделав в точности те же действия и в той же последовательности. Некоторые возможности решения этой проблемы предусматриваемые в lisp-подобных языках типа ML и Miranda ситуацию кардинально не изменяют.

    Текст: http://www.polyakov.com/informodynamics/chast2_glava5.html
    (Лачинов, Поляков "Информодинамика" http://www.polyakov.com/informodynamics).


    № 4317   16-07-2008 02:14 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4316« (Geniepro)
    ___________________________
    Хехе, однако как они на Скале то завязли. У меня кстати такое же впечатление от языка осталось. Java с налепленными поверху, безо всякого плана, "на свякий случай" фичами из фп.
    Результат - жутко большой, громоздкий и сложный механизм, в котором одно и тоже можно сделать множеством совершенно разных способов. Ну как PL/1

    А вот один из коментариев весьма порадовал:
    200 erlang + 300 cl = выход на траекторию, подруливание, объезжание кратеров и убегание от марсиан.


    № 4316   15-07-2008 23:44 Ответить на это сообщение Ответить на это сообщение с цитированием
    ICFPC 2008 закончился, результаты будут известны через несколько месяцев, а пока появились первые впечатления наших от конкурса.

    Полное разочарование от языка Scala:

    Мы надеялись, что она окажется "старой доброй джавой, где иногда можно перейти на старый добрый хаскелл", но она оказалась мегамиксом из огромного количества фич - как если бы Simon Peython-Jones сошел с ума и написал свой Перл.



    № 4315   09-07-2008 12:14 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4314« (Geniepro)
    ___________________________

    Это персонаж из "Властелина колец", как я понял...
    Не совсем. Это из других сказаний о Средиземье ;-)


    № 4314   09-07-2008 11:52 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4313« (Geniepro)
    ___________________________

    Разные варианты этого же текста на разных языках:
    http://search.cpan.org/src/AUDREYT/Perl6-Pugs-6.2.13/docs/other/earendil_translations
    Это персонаж из "Властелина колец", как я понял...


    № 4313   09-07-2008 11:46 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ковырялся в исходниках PUGS (интерпретатор Perl6, написанный на Хаскелле; автор Одри Танг, в девичестве (до перемены пола) -- Атриджус).
    Совершенно случайно наткнулся на такой вот кусок в главном файле Main.hs:


    {-|
        The Main REPL loop.

    >  Но сpок настал, и новый челн
    >  В даp получил Эаpендил:
    >  Избpали Эльфы для него
    >  Хpусталь эльфийский и мифpил;
    >  Его венчал живой огонь,
    >  Огонь бессмеpтный - Сильмаpилл,
    >  Подаpок светлой Элбеpет

    -}


    Что оне имели в виду? 8-О Одри знает русский??? Круто... ;о)


    <<<... | 4332—4323 | 4322—4313 | 4312—4303 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 119


    Добавить свое сообщение

    Отслеживать это обсуждение

    Дополнительная навигация:
    Количество сообщений на странице

    Порядок сортировки сообщений
    Новое сообщение вверху списка (сетевая хронология)
    Первое сообщение вверху списка (обычная хронология)

    Перейти на конкретную страницу по номеру
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования