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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 2422—2413 | 2412—2403 | 2402—2393 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 310


    № 2412   01-04-2007 05:22 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2391« (Geniepro)
    ___________________________

    Зачем требовать от школьников инженерных подходов к программированию? Всё равно мало кто из них захочет стать в будущем программистами, так зачем зря отпугивать?

    Типичное непонимание того, зачем и как устроена система образования, в т.ч. школьного. Английский язык там преподают не для того, чтобы делать переводчиков, физику -- не для подготовки будущих физиков ... и т.д.

    Плюс, если не хотят, то от чего отпугивать?

    уж что проще, чем объяснить математические рекурсивные функции?

    ХА-ХА-ХА-ХА-ХА!!!!!


    № 2411   01-04-2007 05:19 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2387« (Geniepro)
    ___________________________

    Менее известная работа, которую я тут %url[недавно приводил:]

    Работа эта доказывает только то, что вводный курс для полных новичком лучше всего делать не на "промышленной" системе, а на максимально простой с минимумом основных понятий. Специфика ФЯ там не играет ровно никакой роли.


    № 2410   01-04-2007 05:17 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2401« (AVC)
    ___________________________

    ... оберонщики склонны не замечать механизмы, отсутствующие в "чисто" императивных языках (например -- лямбды; каюсь).

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

    Еще раз: Оберон -- не "чисто" императивный язык. Таким является фортран 77. Но никак не Оберон.


    № 2409   01-04-2007 05:05 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2401« (AVC)
    ___________________________

    функциональщики несколько увлекаются деталями языка Хаскель, как будто ФП и Хаскель одно и то же (на мой взгляд, Хаскель -- частный случай)

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


    а оберонщики склонны не замечать механизмы, отсутствующие в "чисто" императивных языках (например -- лямбды; каюсь).

    Хотя мне VladD2 и не нравится своим фанатизмом в отношении Нэмерле, но тут очень кстати вспомнить его любимый пресловутый "парадокс Блаб"... :о))


    № 2408   01-04-2007 04:57 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2398« (slava)
    ___________________________

    Здесь (<10) является анонимной функцией. Не будь этой фозможности вам пришлось бы писать так:

    Синтаксический сахар, как анонимные классы в Java.

    Вы знаете, модули ведь тоже всего лишь синтаксический сахар. Как и оъекты, и записи...
    И вообще, ВСЁ что свыше Машины Тьюринга (в ИП) или лямбда-исчисления (в ФП) - ВСЁ это лишь синтаксический сахар, не более того...


    № 2407   01-04-2007 04:51 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2395« (AVC)
    ___________________________

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

    Похоже, у нас с Вами слишком разные представления о функциональном стиле.

    Повторю вопрос: все ФЯ реализуют ФП одинаково?

    А все ли ООП-языки реализуют ООП одинаково?

    Вряд ли есть хоть один человек, который знает все ФЯ.

    Однако в тех ФЯ, описания которых мне попадались, во всех них были и анонимные функции, и функции высшего порядка. А если в языке не было этих элементов, то их авторы и не называли свои языки функциональными.
    Другое дело, что есть гибридные языки (например, питон) в которых эти элементы есть, но при этом эти языки функциональными не считаются...

    Если Вам известны обратные примеры - приведите их. Будет очень любопытно посмотреть на это...

    Я правильно понял, что в ФП сборщик мусора -- необязательный элемент, кусок синтаксического сахара?
    Например, в Обероне его необходимость считается математически доказанной...

    Пардон? Как это можно понять? Как можно математически доказать необходимость в сборщике мусора?

    Предположим, у Вас в наличии объём памяти, ограниченный лишь размерами Вселенной. Для подавляющего большинства задач сборщик мусора вам будет абсолютно не нужен...


    Хочу напомнить, что в функторы (объекты-функции) в STL никакого отношения к ООП не имеют.
    А то, если так рассуждать, то почти все ИЯ являются еще и ФЯ: ведь практически в каждом есть функции. :)

    STL - это уже результат метапрограммирования на шаблонах.

    Насколько я понял, необходимости в лямбдах нет, как и прямой связи между лямбдами (как безымянными функциями) и функциональностью (в смысле ФП).

    На основании чего Вы так решили?

    Начиная с Алгола-68, существуют императивные языки, ориентированные на ?-исчисление, но не ставшие от этого функциональными.

    Что это за такое "?-исчисление" и что это за языки такие?


    Короче, один пример (даже схематичный) стоит тысячи слов.

    Ну так мы давно уж твердим: "Попробуйте!"
    Возможно, многие вопросы отпадут сами собой...


    № 2406   01-04-2007 04:43 Ответить на это сообщение Ответить на это сообщение с цитированием
    Замечу при этом, что к Питону, как явлению в принципе, отношусь совершенно положительно, немного интересовался и даже пробовал. Интересная "игрушка", вполне применимая для ряда задач (например, в качестве макроязыка для каких-то приложений, я считаю, например, удачным решением разработчиков Civilization3 вынести все описания и игровую логику в скрипты на питоне - там их около 40 Мб :-) )


    № 2405   01-04-2007 04:38 Ответить на это сообщение Ответить на это сообщение с цитированием
    По поводу Python, Ruby и т.п., что Вы где-то выше предложили для школы...
    Бррр... Мне от этой мысли коробит. Чистый Scheme/Lisp/Haskell - это одно...
    Но только не эти "сахарные" языки. Нужно приучать с первых шагов к дисциплине и минимализму, а не к многочисленным удобствам и "язык должен мне позволить так, как я хочу". В противном случае - что будет заложено в школе, потом и рожном не вышибешь :-) И программиста не выйдет, выйдет еще один батонокидатель или кодолабатель.


    № 2404   01-04-2007 04:35 Ответить на это сообщение Ответить на это сообщение с цитированием
    Да, по поводу реального времени на ФП - чтобы не выглядело так, что я игнорирую данные мне ссылки... Скачал, погляжу на досуге, потом поделюсь впечатлениями. Мне это действительно интересно.


    № 2403   01-04-2007 04:19 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2387« (Geniepro)
    ___________________________

    Пример Оксфорда и MIT Вас, похоже, не впечатляет, а жаль...

    Впечатляет. В Оксфорде два языка, на которых учат параллельно: Хаскел и Оберон. Что совершенно правильно. Если бы Вы повнимательней следили за мыслью собеседников, то помнили бы, что я подчеркнул НЕОБХОДИМОСТЬ преподавания ФП в ВУЗе - и чем раньше, тем лучше.
    Я просил примеры преподавания в школе, а не в ВУЗе.


    <<<... | 2422—2413 | 2412—2403 | 2402—2393 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 310


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

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

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

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

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

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