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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 2822—2813 | 2812—2803 | 2802—2793 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 270


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


    Опять мимо контекста. Это не учебная шахматная программа. Это учебная программа на хаскеле. Она показывает основные принципы построения программ манипулирующих большим и сложносоставным состоянием в интерактивном режиме. При чем тут соответствие правилам шахмат или эффективный алгоритм перебора ?


    Просто это побуждает думать (в чем я лично очень сомневаюсь :) ), что взятие на проходе или возможность рокировки как-то особенно не ложатся на Хаскель. :)
     AVC


    № 2811   12-04-2007 14:49 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2810« (Jack Of Shadows)
    ___________________________

    Это учебная программа на хаскеле. Она показывает основные принципы построения программ манипулирующих большим и сложносоставным состоянием в интерактивном режиме.

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

    Это учебная программа на хаскеле. Она показывает основные принципы построения программ манипулирующих большим и сложносоставным состоянием в интерактивном режиме.

    Мне даже страшно себе представить, во что выльется ее текст только при условии четкого соблюдения всех правил ФИДЕ (безотносительно уровня игры) -- http://www.bereg.ru/games/club/andy/ru/rules.htm

    Хотелось бы одним глазком взглянуть. А то, что можно манипулировать состоянием в ФП, я как-то давно уже догадываюсь.


    № 2810   12-04-2007 14:35 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2809« (Руслан Богатырев)
    ___________________________

    2) Рокировка временно невозможна:
    а) если поле,


    Руслан, я знаю правила шахмат. Вы все время пролетаете мимо контекста. Данное правило не представляет собой проблемы потому что основывается на ТЕКУЩЕМ состоянии доски. То есть для него не нужно запоминать какую то дополнительную информацию о том что было в прошлом (двигались ли король и ладьи)


    Вообще-то программа слишком учебная. Минимум, который рекомендуется, -- хотя бы четко соблюдать правила игры (про уровень я молчу).

    Опять мимо контекста. Это не учебная шахматная программа. Это учебная программа на хаскеле. Она показывает основные принципы построения программ манипулирующих большим и сложносоставным состоянием в интерактивном режиме. При чем тут соответствие правилам шахмат или эффективный алгоритм перебора ?



    № 2809   12-04-2007 14:08 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2802« (Jack Of Shadows)
    ___________________________

    Для рокировки имеет значение двигались ли до этого король или ладья.

    Это слишком упрощенный взгляд. Тут есть важные нюансы.

    (1) Рокировка становится невозможной:
    а) если король уже ходил, или
    b) с ладьей, если она уже ходила.

    (2) Рокировка временно невозможна:
    а) если поле, на котором стоит король, или поле, которое он должен пересечь, или поле, которое он должен занять, атаковано одной из фигур партнера;
    b) если между королем и ладьей, с которой должна быть произведена рокировка, находится какая-то фигура, мешающая рокировке.

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

    Кроме того, по правилам ФИДЕ, если игрок намеренно касается ладьи, а затем короля, рокировка не разрешается. Если игрок, намеревающийся рокировать, касается короля или короля и ладьи одновременно, но рокировка в эту сторону невозможна, игрок должен сделать ход королем, включая рокировку в другую сторону, при условии, что она возможна. Если король не имеет ходов, игрок может сделать любой возможный ход.

    Вообще-то программа слишком учебная. Минимум, который рекомендуется, -- хотя бы четко соблюдать правила игры (про уровень я молчу).


    № 2808   12-04-2007 14:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2807« (Jack Of Shadows)
    ___________________________
    А потому алгоритм не нужно строгать совсем.


    Приколистчая очепятка получилась. трогать - строгать :))


    № 2807   12-04-2007 14:05 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2806« (Geniepro)
    ___________________________
    Да не нужно с улучшенным алгоритмом. Ведь цель данной програмки не показать как писать шахматы, а показать как писать интерактивные программы со сложным состоянием на хаскеле.
    А потому алгоритм не нужно строгать совсем.


    № 2806   12-04-2007 13:55 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2804« (Jack Of Shadows)
    ___________________________

    Есть время и желание переписать как вы считаете нужным ?

    Типа - инициатива наказуема, да? :о)
    Если уж переписывать, так в интерактивный вид с GUI и, самое главное, с улучшенными алгоритмами. А я в шахматах, увы, не силён... :о(


    № 2805   12-04-2007 13:50 Ответить на это сообщение Ответить на это сообщение с цитированием
    Кстати, раз уж зашла речь о демо-примерах, то вот маленькая игрушка на Хаселле: Shu-Thing

    http://www.geocities.jp/takascience/haskell/shu-thing.zip

    Простенькая OpenGL-игра, в которой маленький космолёт отбивается от кучи зловредных вражеских звездолётов! :-)
    Правда, комментариев там почти никаких, но всего один файл 17k, в котором почти весь код приходится на OpenGL-действия...


    № 2804   12-04-2007 13:47 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2803« (Geniepro)
    ___________________________
    Мда, увеличение глубины дерева с трёх до четырёх замедляет игру примерно в 30 раз...
    Еще бы. Метод простого перебора в лоб дает взрывной рост вариантов при увеличении глубины просмотра.
    В профессиональных шахматных программах для получения приемлимой скорости просчета используются очень сложные алгоритмы отсечения ветвей вкупе с бааальшой базой данных. А тут элементарный минимакс.

    А вот что мне в этом примере не понравилось - то, что все модули экспортируют всё своё содержимое. По-моему, не очень правильное решение...

    Есть время и желание переписать как вы считаете нужным ?


    № 2803   12-04-2007 13:40 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2799« (AVC)
    ___________________________

    * a depth of the game tree of 4 is already very, very slow

    Мда, увеличение глубины дерева с трёх до четырёх замедляет игру примерно в 30 раз...

    А вот что мне в этом примере не понравилось - то, что все модули экспортируют всё своё содержимое. По-моему, не очень правильное решение...


    <<<... | 2822—2813 | 2812—2803 | 2802—2793 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 270


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

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

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

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

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

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