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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 472—463 | 462—453 | 452—443 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 505


    № 462   20-07-2006 05:51 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 461« ()
    ___________________________

    >>> Ведь бог создал всю вселенную за 6 дней.
    Да, но сколько багов! :)Тэстировать не кому было...


    Вот мы и тестрируем
    Сообщение не подписано


    № 461   20-07-2006 05:08 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 460« (Как слышно? Приём!)
    ___________________________

    >>> Ведь бог создал всю вселенную за 6 дней.
    Да, но сколько багов! :)
    Тэстировать не кому было...
    Сообщение не подписано


    № 460   20-07-2006 03:54 Ответить на это сообщение Ответить на это сообщение с цитированием
    >>> Ведь бог создал всю вселенную за 6 дней.
    Да, но сколько багов! :)


    № 459   20-07-2006 03:03 Ответить на это сообщение Ответить на это сообщение с цитированием
    ПРОЛОГ. ПРОШЛОЕ. НАСТОЯЩЕЕ. БУДУЩЕЕ?
    http://litwr.boom.ru/prolog_ppf.pdf


    № 458   20-07-2006 02:36 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 457« (Артем)
    ___________________________
    P.S. В Библии надо первое предложение заменить на “В начале был Лисп” :)))))

    Дык программисты считают что в Библии есть прямое указание на это.
    Ведь бог создал всю вселенную за 6 дней.
    А в такие короткие сроки такую огромную задачу только на лиспе написать и можно :))


    № 457   20-07-2006 02:29 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 454« (Jack Of Shadows)
    ___________________________
    А лисп подойдет не спеша. Ему торопиться некуда. Ведь он не однодневка, ему жить тысячи лет :)) Пройдут года и многие языки популярные сегодня, просто канут в лету, как это уже на раз происходило. Но лисп это не язык пограммирования, это закон программирования. Его нельзя создать, его можно открыть.
    Он существовал с начала вселенной, и будет существовать и после того как исчезнет человечество. Лисп это математический аппарат, строгий, законченный. В него нельзя ничего добавить, и ничего из него убрать.

    Боже, что там с вами случилось? :)  Вы грибов, случайно, не объелись? Если вы и дальше будете выдавать такие перлы, то я с воплями ужаса умчусь с этого форума. Или вы этого и добиваетесь?  :)))

    P.S. В Библии надо первое предложение заменить на “В начале был Лисп” :)))))


    № 456   20-07-2006 02:18 Ответить на это сообщение Ответить на это сообщение с цитированием
    Я там в прошлом посте недописал, что лучшая IMHO парадигма взаимодействия языков реализована в dotNet Да-да. Билли - молодец. :)


    № 455   20-07-2006 02:15 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 452« (Jack Of Shadows)
    ___________________________
    1. Просто, у меня другие задачи.
    И на основании этого вы сделали вывод что Пролог доминирует в логическом программировании ? :))
    Нет, не на основании этого. Здесь я указал, что особенно глубоко не вникал в другие системы лог. Программирования, потому что Пролог полностью удовлетворяет все мои потребности (в спец. областях, естественно). О преимуществе Пролога, я сужу по упоминаемости как в институтском курсе, так и по материалам в Интернете. О таких системах как OPS5, Planner, CLIPS я краем уха слышал. Что касается современного развития лог. программирования, то в Интернете (IMHO) много материалов именно по Прологу и производным от него, таким как Mercury. Я не пытаюсь тут изобразить из себя гуру декларативного программирования. Естественно, что я принимаю к сведению мнения других людей о каких-то языках. Сначала это был преподаватель, потом авторы статей в  Интернете. Однако ваши утверждения о частоте использовании того или иного продукта, в принципе, такие же голословные, если уж на то пошло, как и мои.  Они продиктованы или субъективным опытом, или, извините, непреодолимым желанием указать кому-либо на его недоразвитотсть

    2. К вопросу о ленивых вычислениях в Лиспе.
    Простите, может конечно. Я это подраумевал, когда отвечал, и забыл.
    Потом вы написали
    В лиспе вообще НЕТ ленивых вычислений. Как и нет ООП, нет аспектов, нет list comprehensionы. Да черт возьми практически НИЧЕГО НЕТ. И в то же время в лиспе есть все то что только может быть в любом языке программирования. Есть ООП (библиотека CLOS), есть list comprehensions (если читали эту ветку то код макроса я приводил), есть аспекты, и конечно же есть ленивые вычисления (библиотека)
    Вы сами себе противоречите и вас трудно понять. То может, то не может. Я сейчас тоже приведу пример библиотеки встроенного Лиспа для Дельфи и скажу, что Дельфи поэтому гораздо круче. В C++ тоже есть библиотеки для работы с множествами или всякие хитрые вещи, для реализации интерфейсного наследования. Но в Дельфи (и в C#) это гораздо удобнее. Когда какие-то возможности встроены в язык и когда реализуются правой ногой через левое ухо, - это, извините, "две большие разницы"  :)  Преимущество таких языков как Хаскель именно в том, что ленивые вычисления являются их имманентным свойством. В современных версия Пролог-производных, кстати, тоже есть возможность использования ленивых вычислений.

    3. Вот скажем библиотека работы с sql в дельфи, не изменяет сам язык, не добавляет в него sql. Вы там sql все равно в виде string пишете. Причем неважно что вы там написали, дельфи просто схавает при компиляции, а ошибку вы получите уже при исполнении. В лиспе библиотека добавляет sql прямо в язык. То есть вы можете прямо в лисп коде писать. Причем будет проверка при компиляции.
    Ну, во-первых, когда я пихаю SQL в Дельфи, то я его всегда проверяю хотя бы с помощью SQL-Explorer или при простом SQL запросе сделав TQuery активным. (Я не говорю про ADO.Net модель связи с базой данных, там это более продвинуто) В конце концов, если вы так уж любите библиотеки, не очень трудно написать таковую, которая проверяет корректность SQL. Может, такие и есть для Дельфи. Неужели Лисп настолько интеллектуален, что может при компиляции обнаружить несоответствие названий полей реальной структуре базы, или даже такую неприятную вещь, как кортежное произведение двух подзапросов в большой базе?  Что, при программировании на Лиспе не надо проверять свои запросы с помощью специфических интрументов, предназначенных именно для работы с базами данных?

    4. В лисп таким образом можно добавить любой язык, пролог, опс, да черт возьми html (код html я здесь приводил) И в Дельфи тоже можно добавить. Мало ли доморощенных библиотек, реализующих тот или иной язык? Но вот в сравнении с оригиналом…  Не думаю, что встроеный в какой-нибудь Лисп Пролог можно было сравнить даже с  SWI, не говоря уже о SICSTUS.
    Насчет взаимодействия языков, то лучшая (опять-таки IMHO) парадигма реализована

    5. К вашему сведению все эти прологи, опсы и прочая логическая лабуда разрабатывались на лиспе. И уже позже переписывались на си для эффективности. Вот здесь вы и прокололись. Это говорит как раз о примитивности Лиспа, в сравнении с указанными системами. Обычно более высокоуровневые языки пишутся на менее высокоуровневых. А если следовать вашей логике, то ассемблер – это самый крутой язык, а все прочее - лабуда. Даже не ассемблер, а машинные коды :) И, в конце концов, тот же Лисп писался, скорее всего на C (и даже не на C++). Что насчет первоначальной разработки "логической лабуды" на Лиспе, а потом переписывании на C, то скорее всего Лисповый текст компилировался в сишный код, который потом оптимизировали (вот видите, опять ваш Лисп не идеален :) )  И, уверен, что есть реализации этой "лабуды", которые не писались на Лиспе. Лень рыться по документации, но если это вас интересует, то я могу поискать, в каких системах сделаны реализации Пролога, которыми я пользуюсь.


    № 454   19-07-2006 13:01 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 453« (Сергей Перовский)
    ___________________________
    Ну вот, кажется мы и добрались до области применения лиспа: моделирование специализированных языков программирования.

    Так оно и было десятилетиями. Но сейчас ситуация меняется.
    Резко начинают набирать популярность динамические языки со сборщиком мусора (Python, Ruby)
    А лисп это тоже динамический язык со сборщиком мусора, только на порядок мощнее всех этих игрушек (Python, Ruby)
    Они проложили дорогу, как легкая кавалерия скачет впереди тяжелой пехоты.

    А лисп подойдет не спеша. Ему торопиться некуда. Ведь он не однодневка, ему жить тысячи лет :))
    Пройдут года и многие языки популярные сегодня, просто канут в лету, как это уже на раз происходило.
    Но лисп это не язык пограммирования, это закон программирования.
    Его нельзя создать, его можно открыть.
    Он существовал с начала вселенной, и будет существовать и после того как исчезнет человечество.

    Лисп это математический аппарат, строгий, законченный. В него нельзя ничего добавить, и ничего из него убрать.

    (Эк меня понесло :))) )



    № 453   19-07-2006 12:03 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 452« (Jack Of Shadows)
    ___________________________
    Лисп вообще никаких барьеров в виде синтаксиса программисту не ставит.
    Поэтому он является основным языком для исследований в области программирования, особенно в области ИИ.
    К вашему сведению все эти прологи, опсы и прочая логическая лабуда разрабатывались на лиспе.
    И уже позже переписывались на си для эффективности.

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


    <<<... | 472—463 | 462—453 | 452—443 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 505


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

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

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

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

    Перейти на конкретную страницу по номеру
      
    Время на сайте: 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» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

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