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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 1512—1503 | 1502—1493 | 1492—1483 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 401


    № 1502   09-11-2006 06:10 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1501« (al_mt)
    ___________________________
    и представлять, как бегают электрончики в процессоре :)))


    № 1501   09-11-2006 06:03 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1500« (Сергей Перовский)
    ___________________________

    Ответ на »сообщение 1496« (Как слышно? Приём!)
    ___________________________
    >>>Кстати, Excel - наиболее симпатичный из них, на мой вкус.
    Кстати, идеология ( и название ) cells очень напоминает электронные таблицы.
    И проблемы те же - зацикливание ссылок, большие накладные расходы и т.д.

    Совершенно по Джоэлю, чтобы хорошо кодить на ФЯ, надо знать как это в конечном итоге реализуется на ИЯ :)))))


    № 1500   09-11-2006 04:54 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1496« (Как слышно? Приём!)
    ___________________________
    >>>Кстати, Excel - наиболее симпатичный из них, на мой вкус.
    Кстати, идеология ( и название ) cells очень напоминает электронные таблицы.
    И проблемы те же - зацикливание ссылок, большие накладные расходы и т.д.


    № 1499   09-11-2006 03:25 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1498« (Как слышно? Приём!)
    ___________________________

    Ответ на »сообщение 1497« (al_mt)
    ___________________________
    >>> Среда исполнения сама всё сделает.
    А зачем она - география? На то есть кондуктора.

    Это просто другой уровень абстрагирования.
    С точки зрения ФЯ вопрос "как отследить изменение значения переменной?" бессмысленен, т.к. в ФЯ нет переменных :) А в ИЯ делаем глобальное сообщение "изменилась переменная".


    № 1498   09-11-2006 03:13 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1497« (al_mt)
    ___________________________
    >>> Среда исполнения сама всё сделает.
    А зачем она - география? На то есть кондуктора.


    № 1497   09-11-2006 03:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Вопрос. КАК cells узнает об изменении значения y?
    А в чём проблема? Если на ЛИСП, то и не надо ни о чём узнавать. Среда исполнения сама всё сделает. Вопрос только в накладных расходах.


    № 1496   09-11-2006 03:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    >>> Вы свято верите, что Delphi Вас не обманет ... ?
    Нет, не обманет. Разве могут лгать эти глаза!
    Она просто невинно ошибётся, она не нарочно :)

    Я свято верю, что если что-то может сломаться - оно обязательно
    сломается, причём в самый неподходящий момент.
    Связь с БД - это шлифовали и ходили по граблям долгие годы. А потом,
    это одна связь. Ежели количество связей велико, топология их неизвестна,
    организация их обработки - тайна неизъяснимая, пока не поработаешь
    несколько лет, то начинают терзать сомнения. Тут презумпция виновности.
    Чем сложнее аппарат, например ФЯ или шаттл, тем труднее найти ошибку.
    И самое неприятное - теряется ощущение подконтрольности своего софта.

    А уж про надёжность продуктов M$ я вообще молчу во избежание флейма.
    Кстати, Excel - наиболее симпатичный из них, на мой вкус.


    № 1495   09-11-2006 02:44 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1482« (hugi)
    ___________________________

    Вопрос. КАК cells узнает об изменении значения y?

    В случае, когда y представляет собой "слот" CLOS-объекта, это делается достаточно просто --- в составе CLOS Metaobject Protocol (MOP) имеется стандартная (в рамках MOP, который, правда, сам по себе частью ANSI CL не является :-) возможность перехвата обращений к слотам. Если же мы хотим перехватить обращение к произвольной переменной, то здесь, насколько мне известно, простого и общего решения не существует. По крайней мере, MOP здесь уже ИМХО не помощник. Несмотря на то, например, что символы представляют собой CLOS-объекты, эти объекты мало чем могут нам помочь:

    CL-USER 1 > (class-of 'foo)
    #<BUILT-IN-CLASS SYMBOL 20731A6C>

    CL-USER 2 > (class-effective-slots (class-of 'foo))
    NIL



    Отсюда видно, что объекты, ассоциированные с символами, не имеют слотов вообще (по крайней мере, в LispWorks). Как следствие, обращение к чему нам перехватывать средствами MOP?

    Еще одна возможность сделать такой перехват --- переопределить макрос setf, но такого рода штуки крайне не рекомендуются стандартом и могут иметь трудноуловимые и далеко идущие последствия.

    В общем, у меня очень большие сомнения, что observer можно навесить на любую переменную, даже в Лиспе. На слоты объектов --- сколько угодно.


    № 1494   09-11-2006 00:30 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1490« (Jack Of Shadows)
    ___________________________

    Да есть в монадах самое обчное присваивание с изменением сотояния переменной, то есть заменой предыдущего значения на новое.
    Возьмите код подсчета запятых, который я здесь приводил, и вместо переменной t2 напишите t1
    <...>
    Как видите вначале в переменную t1 запихивается одно значение времени, потом в нее же другое значение.
    Все точно также как и в любом другом императивном языке. Только вместо знака = пишется <- :))

    Мда, действительно... :-(
    Ну хоть хорошо, что это жёстко выделено в do-участках...


    № 1493   09-11-2006 00:09 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1484« (hugi)
    ___________________________
    OK, давайте пихать в язык всё подряд, подозреваю, что получится второй Perl или что-то вроде этого. Как же тогда быть с элегантностью языка, с его простотой, целостностью, чистотой дизайна, лаконичностью, единообразием внутренних концепций в конце концов?!
    Не "пихать всё подряд", а наделить язык и исполняющую среду возможностями реализовать любую концепцию и парадигму.
    Заметьте, что все упомянутые вами языки + Лисп + Форт имеют развитое (базовое) свойство взаимодействия как с исполняющей системой (метаинформация), так и "переделки" и взаимодействия со "средой разработки". Это - одна из составляющих гибкости и настриваемости этих языков и сред. И не случайно они начинали (ну, может быть за исключением Форта - там ваще особый случай, называть ли его языком?) с интерпретаторов.


    <<<... | 1512—1503 | 1502—1493 | 1492—1483 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 401


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

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

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

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

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

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