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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 3072—3063 | 3062—3053 | 3052—3043 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 245


    № 3062   03-10-2007 06:48 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3049« (Jack Of Shadows)
    ___________________________
    Вагиф, скажите пожалуйста, а что Вы думаете про РЕФАЛ? Какое место он, с вашей точки зрения, занимает в семействе функциональных (хотя, наверное, шире - декларативных, ведь он "марковский") языков?


    № 3061   03-10-2007 06:05 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3047« (Jack Of Shadows)
    ___________________________
    >>>Может после школы они у вас в большинстве вот так деградируют ?
    Если их оценивают по количеству строк кода, то иного трудно ожидать :)


    № 3060   03-10-2007 04:53 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3059« (Руслан Богатырев)
    ___________________________

    Что касается "идеологии безошибочности". Немногие знают, что в 1951 г. в Манчестере Алан Тьюринг выступил с лекцией "Интеллектуальные машины. Еретическая теория" (развитие его работы 1948 г.). Он сказал: "Моя точка зрения такова: можно сконструировать машины, которые весьма близко смогут моделировать поведение человеческого разума. Они будут порой ошибаться, а иногда смогут выдавать новые весьма интересные утверждения, и в целом их выводы будут заслуживать внимания в такой же степени, как и сделанные человеческим разумом". Тьюринг отмечает важнейший момент: "Я уверен, что опасность того, что математик сделает ошибку, является неизбежным следствием его способности порой находить принципиально новый метод. Похоже, это подтверждается хорошо известным фактом, что наиболее надёжные люди обычно не обнаруживают действительно новых методов".


    № 3059   03-10-2007 04:48 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3058« (Стэн)
    ___________________________

    Или Вы хотите, чтобы y = x * x, при x = 5 выдавала то 25, то 24, то 36?

    Я хочу, чтобы были понятны ограничения применимости понятия функции (в математике). Чтобы мы отдавали себе отчет в том, что в ряде случаев эти "железобетонные устои" серьезно ограничивают наши возможности (в том числе и в программировании). В частности, в ФП функция (в математическом смысле) является ключевой сущностью.


    № 3058   03-10-2007 04:40 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3053« (Руслан Богатырев)
    ___________________________
    >>> MOD, как и хеш, ставят в соответствие нескольким элементам x из X один элемент y из Y. И это функция. И это сюръективное отображение, сюръекция. Вот если бы ставилось несколько... А, так Вы смотрите с другой стороны? Но это уже не функция в традиционном математическом смысле.
    Да, пожалуйста:

    y = Af(x)
    y[y1, y2, y3] = A[a1, a2, a3] f(x)


    Или матрицы и вектора уже не математика?

    Или Вы хотите, чтобы y = x * x, при x = 5 выдавала то 25, то 24, то 36?


    № 3057   03-10-2007 04:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3044« (Jack Of Shadows)
    ___________________________

    Ответ на »сообщение 3042« (Илья Ермаков)
    ___________________________
    Ну как ? испугались страшной монады ? Смльно отличается от того как вы это записали бы в обероне ?
    Единственное видимое отличие знак <- вместо :=
    Вот и все, вылезайте из под одеяла :))

    Нет, не сильно :-) В том-то и дело, что если человек большую часть времени программирует задачи из области "рецептов", то в чём смысл переходить на Хаскелл? Чтобы большую часть кода написать в стиле "не сильно отличающемся"? Зато потерять привычную прозрачность императива для этих задач.
    Будьте уверены, если бы я занимался, например, программированием AI или остался в компьютерной лингвистике, то меня не пришлось бы ни минуты убеждать переходить на LISP али Haskell :-)


    № 3056   03-10-2007 04:01 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3051« (panda)
    ___________________________

    Ответ на »сообщение 3043« (Илья Ермаков)
    ___________________________
    Может, эти новички просто читают умные книжки? Например, "Рефакторинг" Мартина Фаулера. Такая мысль Вам в голову не приходила?

    Меня мало интересует, что читают люди, не знающие основ грамотного алгоритмирования. И не представляющие жизни без субститутов goto.


    № 3055   03-10-2007 03:50 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3054« (Сергей Осколков)
    ___________________________
    невозможна - по определению функции.


    № 3054   03-10-2007 03:49 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3050« (Стэн)
    ___________________________

    Ответ на »сообщение 3039« (Руслан Богатырев)
    ___________________________
    >>> О, Вы не в курсе определения понятий "функция" и "отображение" в математике? :)
    ОК. Тогда расскажите, пожалуйста, что это такое:
    y(x) = x mod 5, где x = 1, 2, 3, ... (n >> 5).
    И как так получается, что множество элементов X отображается в множество Y = {0, 1, 2, 3, 4}, где каждому y соответствует много элементов из X? Пример: y = 2 | x = 7, 12, 17...
    Или это уже не математика?


    Каждому элементу из области определения функция ставит в соответствие единственный элемент из множества значений.
    Но это совсем не означает, что двум разным элементам из области определения не может быть сопоставлен один и тот же элемент множества значений.
    Иначе говоря ситуация
    x1
      \
        \
        y
        /
      /
    x2
    возможна, а

      y1
    /
    x
    \
      y2
    невозможна.


    № 3053   03-10-2007 03:48 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3050« (Стэн)
    ___________________________

    И как так получается, что множество элементов X отображается в множество Y = {0, 1, 2, 3, 4}, где каждому y соответствует много элементов из X? Пример: y = 2 | x = 7, 12, 17...
    Или это уже не математика?


    MOD, как и хеш, ставят в соответствие нескольким элементам x из X один элемент y из Y. И это функция. И это сюръективное отображение, сюръекция. Вот если бы ставилось несколько... А, так Вы смотрите с другой стороны? Но это уже не функция в традиционном математическом смысле.


    <<<... | 3072—3063 | 3062—3053 | 3052—3043 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 245


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

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

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

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

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

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