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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 2492—2483 | 2482—2473 | 2472—2463 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 303


    № 2482   02-04-2007 03:51 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2469« (Geniepro)
    ___________________________
    >>> Насчёт Sisal. Выдержка из описания Sisal-90:

    SISAL 90 - A SISAL extension with higher order functions, polymorphism.

    >>>Предлагаю такой (может быть не новый) тезис: :о)

    >>>Вирт своим Паскалем убил Алгол-68 и затормозил развитие индустрии на десятки лет.

    А что же он Эйлером никого не убил?


    № 2481   02-04-2007 03:39 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2469« (Geniepro)
    ___________________________

    Вирт своим Паскалем убил Алгол-68 и затормозил развитие индустрии на десятки лет.

    Даже неудобно как-то Вас обвинять в незнании истории, но все же замечу, что в свое время Эдсгер Дейкстра написал, что принятие в Германии Алгола-68 оказало парализующий эффект на немцев, подобный тому, которому ощутил на себе Советский Союз, когда русские в конце 1960-х приняли решение разрабатывать свою новую национальную серию компьютеров на основе поразрядно-совместимой копии IBM 360. То была величайшая победа Америки в холодной войне!


    № 2480   02-04-2007 03:21 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2470« (Geniepro)
    ___________________________

    А стоит ли вообще опускаться на такой низкий уровень?
    А Вы попробуйте хоть на пару минут не абстрагироваться от реальности (от существующих компьютеров). Четыре блока (память, АЛУ, УУ, ВВ). Так что там из них приоритетно для ФП?


    № 2479   02-04-2007 03:14 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2471« (Jack Of Shadows)
    ___________________________

    Сети Петри для них - ну в самый раз :))

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

    Можно попросить с помощью сети Петри набросать модель пульта управления плеером, например. По-моему, просто и наглядно. Т.е. школьник "распаивает" алгоритм и наблюдает, чего там напаял.

    Даже проще в восприятии, чем конечные автоматы. А по вычислительной сути -- та же машина Тьюринга. Т.е. любой алгоритм представляется вот такой примитивной схемой. Что интересно: хочешь синхрон -- пожалуйста, хочешь асинхрон -- да нет проблем. И все по шагам, даже школьник не запутается. Головастый мужик этот Карл Адам Петри. В этом году, кстати, исполняется 45 лет его открытию.


    № 2478   02-04-2007 03:12 Ответить на это сообщение Ответить на это сообщение с цитированием
    >>>Господин AVC "встал на дыбы" не из-за того, что в языке есть большие
    >>>целые, а из-за того, что нет малых.

    Не понимаю, что значит "нет малых"? Если почитать официальные сообщения о языке Haskell, то там сказано, что модуль Prelude определяет два целочисленных типа - Int и Integer. Int - это целые числа фиксированной точности, Integer - целые числа произвольной точности. Диапазон для Int определяется реализацией и может быть определен через значения minBounded и maxBounded. Насколько я понимаю, это полный аналог обычных целочисленных типов данных в "обычных" императивных языках программирования.

    >>>поддержка комплексных чисел на уровне языка возможна только в ИЯ,
    >>>потому что в Фортране она есть, а в Хаскеле - нет.

    Как же нет? Для Haskell как раз определена стандартная библиотека Complex. Там есть все для работы с комплексными числами.



    № 2477   02-04-2007 03:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2473« (Илья Ермаков)
    ___________________________

    >>>В Active Oberon делегаты есть, кстати...

    Вполне возможно, что это подходящая синтаксическая конструкция для "подслащенной" реализации λ в императивных языках.
     AVC


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

    Ответ на »сообщение 2460« (AVC)
    ___________________________
    Идиоткую ошибку которая ему ни о чем не говорит ? Путанные и сбивающиеся и главное совершенно непонятные для него обьяснения учителя почему математика тут маху дала ? Разочарование ? Осознание того что математика это только игрушка, которая работает "на моделях", а как что побольше так ломается ?

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


    № 2475   02-04-2007 02:56 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2468« (Jack Of Shadows)
    ___________________________

    >>>Это же чрезмерная роскошь. Это идет вазрез с самим смыслом существования императивных языков - быть экономичными по отношению к железным ресурсам. Вы посмотрите как императивщики на дыбы встают при одном только упоминании столь расточительной растраты памяти на какие то там числа. Вот реакция господина AVC:

    Ну, Jack, как Вам не ай-яй-яй?
    Господин AVC "встал на дыбы" не из-за того, что в языке есть большие целые, а из-за того, что нет малых.
    Как пресс-секретарь г-на AVC, могу сказать, что г-н AVC совсем не против, чтобы в некоем императивном языке было 2 вида целых:
    1) большие, для любознательных школьников;
    2) малые, для написания операционок.
     AVC


    № 2474   02-04-2007 02:56 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2456« (Jack Of Shadows)
    ___________________________

    Ответ на »сообщение 2450« (AVC)
    Приведите ЛЮБУЮ задачу из школьной программы, которая на ваш взгляд потребует в ФЯ каких то специальных конструкций.
    Сравним код оберона и хаскеля, потом уже обоснованно будем говорить что для школьников егче, и где меньше наносной шелухи. Пока что пример с факториалом сильно не в пользу оберона.

    А зачем вообще школьникам считать факториал 100 на длинной арифметике? Чтобы приучить к мысли, что "машина всегда все проглотит, перемелет и выплюнет"? Не проще ли использовать этот пример для демонстрации того, что программирование часто ресурсоемко? Что размерность многих задач для малых входящих величин дает экспоненциальный рост размерности выходящих?
    А Вы предлагаете оставлять школьников в счастливом неведении, что "булки сами на деревьях растут"...


    № 2473   02-04-2007 02:49 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2452« (AVC)
    ___________________________

    Ответ на »сообщение 2449« (AVC)
    ___________________________
    Напрашивается ввести в язык что-то вроде делегатов, вопрос -- стоит ли... :)

    В Active Oberon делегаты есть, кстати...


    <<<... | 2492—2483 | 2482—2473 | 2472—2463 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 303


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

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

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

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

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

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