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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 3212—3203 | 3202—3193 | 3192—3183 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 231


    № 3202   05-10-2007 08:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3200« (Руслан Богатырев)
    ___________________________
    Неужели Вас подвергают насилию и навязывают Вам истину в последней инстанции? Участники высказывают свои взгляды и иллюстрируют их дополнительной информацией. Всего лишь

    Руслан, я тоже высказываю свое мнение. И я совершенно не хотел вам ничего навязывать. Просто, мне кажется, что такие мелочи, как использование или не использование break, как я уже говорил, концептуально равнозначны спорам о тупой и острой стороне яйца.

    Я как раз читаю о принципах суперкомпиляции в Refal в сравнении с обычным частичным вычислением функций в функциональных языках. Вот это, действительно, достойные рассмотрения вещи. Жаль, что Refal в России занимаются только ученые. Они, обычно, не могут вывести свои творения на коммерческий уровень. А жаль. Повтоюсь, язык очень оригинальный.


    № 3201   05-10-2007 07:59 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3199« (...)
    ___________________________

    Ответ на »сообщение 3197« (Илья Ермаков)
    ___________________________
    А отказ от break привидем к излишнему многословию в условии цикла или к созданию предикативной функции, что опять-таки ведет к тому, что все это надо как-то уместить в голове. Причем, конструкции без break обчно получаются гораздо более многословными.

    Я неспроста привёл примерную статистику в процентах - сколько циклов относятся к типовым схемам. А сколько - к более сложным случаям. Какая у линейного поиска может быть "сложная предикативная функция"? Только если не уметь использовать сокращённое вычисление логических выражений :-) Так речь идёт всё о том, что даже простой поиск без break - ну никак :-)
    А нетипичные, сложные циклы лучше раскручивать формально, и там break просто ну никак не возьмётся, только если потом искусственно к такой форме не привести...
    Я не могу припомнить ни одного примера из кода, характерного для нематематических задач (даже для обработки строк, которая, вообще говоря, на императиве смотрится обычно громоздко), в котором бы хотелось поставить break, и это сильно бы помогло... Приведёте, для предметности разговора? А иначе спор уже пора завершать.


    № 3200   05-10-2007 07:43 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3198« (...)
    ___________________________

    Кошмар! Учитывая блеск одних только рассуждений о вреде break, моя психика остальных 3 тысяч сообщений не выдержит. :)

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

    Нравится break? Нравятся языки с подобными средствами? -- Замечательно. Используйте на здоровье. Я вообще не понимаю, зачем обсуждать те вещи, которые устраивают. Чтобы убедить себя и других в том, что не просто устраивает, но и безусловно правильно? Нет безусловной правильности. Так уж устроена жизнь.

    Есть языки, в которые можно включить много всяких полезностей на все случаи жизни (языки-сундуки, по классификации проф.В.Ш.Кауфмана). И потом убеждать себя, что использовать будут только нужное. Но вот ведь в чем незадача: когда люди работают не индивидуально, а в команде, они в одном и том же языке начинают пользовать нужное по своему усмотрению (свои подъязыки), а это уже совсем иной коленкор. И тогда (чтобы могли уметь заменять коллегу) либо надо жестко регламентировать общее подмножество языка (вводить корпоративный стандарт -- а кто за ним и как будет следить?), либо просто не допускать такую проблему в принципе (использовать лаконичный язык, перенося эту проблему на уровень внеязыковый, уровень библиотек).

    Так что существуют и такие языки, в которых есть только самое необходимое (языки-чемоданчики). Впрочем, посмотрите недавнее мое сообщение на эту тему (в соседней ветке): http://www.delphikingdom.com/asp/talktopic.asp?ID=271&ref=msg&msg=2911#msg2911


    № 3199   05-10-2007 07:35 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3197« (Илья Ермаков)
    ___________________________
    Если цикл построен с выходами из середины, то мне требуется изучать IF-ы вокруг всех точек выхода, а затем восстанавливать явное условие в голове.
    А отказ от break привидем к излишнему многословию в условии цикла или к созданию предикативной функции, что опять-таки ведет к тому, что все это надо как-то уместить в голове. Причем, конструкции без break обчно получаются гораздо более многословными.


    № 3198   05-10-2007 07:26 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3196« (Руслан Богатырев)
    ___________________________
    Кошмар! Учитывая блеск одних только рассуждений о вреде break, моя психика остальных 3 тысяч сообщений не выдержит. :)


    № 3197   05-10-2007 07:20 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3165« (Сергей Осколков)
    ___________________________

    Ответ на »сообщение 3161« (Руслан Богатырев)
    ___________________________
    Нет никаких аргументов, что использование break, exit и т.д. затрудняет чтение и анализ кода. Мой опыт этого не свидетельствует.

    Давайте согласуем слово "чтение и анализ". Если понимать только лишь "увидел и представил, как это работает", то тут действительно не поспоришь - дело привычки.
    А для меня, например, анализ цикла - это сразу же выделение его постусловия. Когда я вижу цикл, построенный через WHILE, то оно очевидно.  Если цикл построен с выходами из середины, то мне требуется изучать IF-ы вокруг всех точек выхода, а затем восстанавливать явное условие в голове.
    Более того, известно, что 70% циклов в программах (а в системных задачах - и все 90%) относятся к базовым алгоритмическим схемам. Таким образом, написанные через WHILE, эти циклы воспринимаются уже как стандартная конструкция, как нечто единое. Сразу видно - вот полный проход, вот линейный поиск, вот фильтрация...


    № 3196   05-10-2007 07:14 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3195« (...)
    ___________________________

    Или я совсем косТный, или кто-то слишком умный, но я уже не понимаю, о чем вы спорите.

    Кому адресован этот вопрос? Всем участникам данной темы? -- Тогда познакомьтесь с 3 тысячами сообщений форума, возможно, удастся понять предмет дискуссий.


    № 3195   05-10-2007 07:11 Ответить на это сообщение Ответить на это сообщение с цитированием
    Или я совсем косТный, или кто-то слишком умный, но я уже не понимаю, о чем вы спорите.


    № 3194   05-10-2007 07:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3193« (Beginner)
    ___________________________


    А Вы видели? Просто Вам трудно переключиться из контекста текстового представления в графический :)
    Кстати, связи, тоже можно сваливать в кучу, если они локализованы. Или выявить торчащие очень нелепо.


    Я Вам подскажу еще одну интересную идею, которой занимался на досуге лет 20 назад. Как можно выявлять ляпы в программировании на слух. Достаточно продумать модель отображения конструкций (точнее, паттернов конструкций, "аккордов") на нотный звукоряд и затем натравливать тестируемый модуль на слух параллельно визуализацией исходника. Где резанет -- там ищи ляпы (корявости) и занимайся преспокойно рефакторингом.

    Занятно сравнить решения для некоторых ФЯ и ИЯ. Проблема, правда, в полезности самой построенной модели отображения.


    № 3193   05-10-2007 06:58 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3190« (Руслан Богатырев)
    ___________________________
    Да, так засверкает, что глазам больно станет :) Наглядность goto в графике -- это нечто.

    А Вы видели? Просто Вам трудно переключиться из контекста текстового представления в графический :)
    Кстати, связи, тоже можно сваливать в кучу, если они локализованы. Или выявить торчащие очень нелепо.


    <<<... | 3212—3203 | 3202—3193 | 3192—3183 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 231


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

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

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

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

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

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