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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 322—313 | 312—303 | 302—293 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 520


    № 312   21-06-2006 00:38 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 310« ()
    ___________________________
    В третем абзаце опечатка. Он должен выглядеть так:
    Можно вспомнить, что даже комплексные числа трудно включить в язык так, чтобы совсем исключить необходимость покомпонентной работы -- подразумевается, без потери эффективности.
    Вы о каком уровне работы в данном случае говорите? Реализации понятия "комплексное число" или использование в проектах реализаций комплексных чисел (будь то библиотека или тип языка)?
    Сообщение не подписано


    № 311   21-06-2006 00:33 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 301« (Jack Of Shadows)
    ___________________________

    Ответ на »сообщение 300« (info21)
    ___________________________

    причина очевидна -- эффективность.
    ...
    что эмулируют просто автоматическое управление памятью,  

    Contradiction of interests как говорится.


    Ну вот, будем цитаты выдергивать...

    Неохота весь этот словесный узор распутывать ...


    № 310   21-06-2006 00:22 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 299« (info21)
    ___________________________
    ..., причина очевидна -- эффективность.
    ... с какой точки зрения?
    Идём от задачи (построенной модели) или от имеющихся средств её решения (учёт архитектуры, средств реализации, "традиций"...)?

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

    Можно вспомнить, что даже комплексные числа трудно включить в язык так, чтобы совсем исключить необходимость покомпонентной работы -- подразумевается, без потери эффективности.
    Вы о каком уровне работы в данном случае говорите? Реализации понятия "комплексное число" или их использование в проектах реализаций комплексных чисел (будь то библиотека или тип языка)?

    Даже для квази-простых списков разнообразие возможных вариаций, возможно, и больше, чем для комплексных чисел.
    Вы сейчас смотрите на всё это с точки зрения примера hugi или, всё же, - как пользователь типовой Лисп-системы?
    Сообщение не подписано


    № 309   21-06-2006 00:17 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 307« (panda)
    ___________________________
    OODB vs SQL DB это офтопик.
    Если хотите его обсуждать, то пожалте сюда: http://www.delphikingdom.com/asp/talktopic.asp?ID=337


    Неправда, это Вы игнорируете ответ: QuickSort.


    Офигеть!! У вас что не цикл так задачу QuickSort решаете ? Первый раз вижу такого программиста.
    И потом QuickSort это не ежедневная задача программиста. QuickSort уже давно реализован в библиотеках практически для всех массивов, списков, и прочих связанных структур.
    Вы до сих пор ее решаете ?!

    Я все еще жду, так как насчет возможно/невозможно на больших массивах данных.
    Я был прав или нет ?


    № 308   21-06-2006 00:07 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 305« (Jack Of Shadows)
    ___________________________

    А на маленьких я уже тоже вам задавал вопрос неоднократно. Вы его продолжаете игнорировать. Где ваше "использование" ?
    Неправда, это Вы игнорируете ответ: QuickSort.
    Хотите еще, пожалуйста, вчера только видел: сравнение текстов в стиле MS Visual SourceSafe.

    Поскольку я немного занимаюсь преподаванием Delphi, есть учебные примеры, демонстрирующие удобство рекурсии там, где это уместно. Пример: составить список иерархии классов, начиная от заданного и заканчивая TObject.


    № 307   21-06-2006 00:02 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 306« (Jack Of Shadows)
    ___________________________

    Ошибаетесь, Обьектная база AllegroCache написанная на чистом лиспе, в сотни раз быстрее любых SQL серверов, включая Oracle и DB2.
    Что-то это слабо отражается на объемах продаж Oracle, DB2 и даже MS SQL Server. Странно, не правда ли?

    К тому же это полный офтопик. Не пытайтесь перевести тему.
    Ничуть. Просто для моих задач там где не хватает рекурсии в Delphi - это значит пора переходить на серверную обработку. Работать на клиенте со 100000 элементов списка - это извращение.


    № 306   20-06-2006 23:54 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 304« (panda)
    ___________________________
    Обработка 20 миллиардов записей на SQL будет намного эффективней.
    Ошибаетесь, Обьектная база AllegroCache написанная на чистом лиспе, в сотни раз быстрее любых SQL серверов, включая Oracle и DB2.
    К тому же это полный офтопик. Не пытайтесь перевести тему.


    № 305   20-06-2006 23:49 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 304« (panda)
    ___________________________
    И на Лиспе тоже.
    Неправда, я проверял. Именно эту функцию. Работает преспокойно и с миллионом и с 10 миллионами и с миллиардом.

    А на реальных объемах данных использовать рекурсию в Delphi вполне можно. 

    Вы на меня бочку катили, когда я сказал что на больших массивах, использование рекурсии невозможно.
    Я это доказал.
    А теперь не хотите признавать что я был прав. Что это за "реальные обьемы" :))

    И не пониманию, почему, если Вы ее не используете, то это проблема Delphi, а не Ваша? 

    Большие массивы, помните ? Не моя проблема, проблема дельфи.
    А на маленьких я уже тоже вам задавал вопрос неоднократно. Вы его продолжаете игнорировать. Где ваше "использование" ?
    Я привел пример использования рекурсии в ИЯ мною. В очень редких случаях - обработка дереьвев.
    Почему в лиспе рекурсия повсеместно ? Почему в дельфи не повсеместно ?
    Ведь рекурсия в ИЯ возможна, пусть даже и на "реальных обьемах" :)))


    № 304   20-06-2006 21:43 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 303« (Jack Of Shadows)
    ___________________________

    На больших (100000) Вылетает с ошибкой Stack Overflow.
    Что означает что использование рекурсии в дельфи на больших массивах НЕВОЗМОЖНО !!!


    И на Лиспе тоже. Обработка 20 миллиардов записей на SQL будет намного эффективней.
    А на реальных объемах данных использовать рекурсию в Delphi вполне можно. Я, например, ее использую в реальных программах. И не пониманию, почему, если Вы ее не используете, то это проблема Delphi, а не Ваша? Вам же неудобно использовать. Другим людям удобно.
    Пример с быстрой сортировкой Вам уже приводили. Это ли не реальная работа?


    № 303   20-06-2006 19:13 Ответить на это сообщение Ответить на это сообщение с цитированием
    Вот кстати и доказательство.
    Я даже не стал брать громоздкий пример panda. Сделал примитивнейшую рекурсию для суммирования чисел.

    Императивный вариант с циклом:


    for I := 0 to 1000000 do    // Iterate
      begin
        lsum := lsum + i;
      end;



    Отрабатывает за секунду !!

    Рвариант с рекурсией:


    function Summ(inbr:integer):integer;
    begin
      if inbr < 1 then Result := 1
      else Result := inbr + Summ(inbr-1) ;
    end;


    На маленьких числах (100 или 1000) прекрасно работает.
    На больших (100000) Вылетает с ошибкой Stack Overflow.
    Что означает что использование рекурсии в дельфи на больших массивах НЕВОЗМОЖНО !!!


    <<<... | 322—313 | 312—303 | 302—293 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 520


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

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

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

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

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

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