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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 1082—1073 | 1072—1063 | 1062—1053 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 444


    № 1072   31-08-2006 14:04 Ответить на это сообщение Ответить на это сообщение с цитированием

    ... что вы, все-таки, думаете о Java и C#3.0 в смысле функциональных возможностей?

    А есть ещё интересный язык Nemerle - типа C# - с уже доступными возможностями функционального и метапрограммирования, а также ООП. Есть variants, pattern matching, type inference and parameter polymorphism (aka generics), tail recursion. Поддерживает aspect-oriented programming...
    Некая смесь C# и ML...

    http://nemerle.org/

    Что думаете об этом магическом земноморском чуде? :))


    № 1071   31-08-2006 11:44 Ответить на это сообщение Ответить на это сообщение с цитированием
    Кстати, здесь http://eclipsefp.sourceforge.net/ неплохой плагин к eclipse для программирования на haskell. Интегрируетс с GHC и HUGS. Заявлена интеграция с iGHC, но у меня что-то не получилось. Встраивается в eclipse версии 3.1 и 3.2 (проверено), а может и в другие тоже. Развивается, на мой взгляд достаточно приличными темпами.
     hugi


    № 1070   31-08-2006 10:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1068« (hugi)
    ___________________________
    А все-таки, неплохо было бы написать на Delphi пример для сложения чисел произвольной длины  ;)


    № 1069   31-08-2006 10:02 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1068« (hugi)
    ___________________________
    ОК. Почитаю позже - я сейчас очень занят  :(


    № 1068   31-08-2006 09:04 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1066« (Артем)
    ___________________________
    Артем, Вы не хотите подумать.
    Так проблема в том и заключается, что библиотеки эмуляции n-разрядных чисел рассчитаны на конечное, ОПРЕДЕЛЕННОЕ ПРИ РАЗРАБОТКЕ БИБЛИОТЕКИ число битов
    Там же написано: список "цифр", а список -- это динамическая структура. Можно в неё запихнуть какое угодно число.
    И забудьте Вы про эти биты. В описанном способе не используется двоичная арифметика.
    Если мы эмулируем 128-битовое число, то в Delphi его можно задавать, как TMy128Bit = packed record i3,i2,i1,i0:cardinal end;
    Число, полученное способом, описанным Коутинхо, будет равно числу, полученному Вашим способом, если только основание b будет равно MAXINT + 1. Но у меня складывается впечатление, что Вы не поняли, в чём там соль. Советую почитать в оригинале, там всего одна глава небольшая, но если всю её цитировать здесь, займёт слишком много места. Кстати весит книга совсем немного: чуть больше 2,5 мегабайт.
     hugi


    № 1067   31-08-2006 08:45 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1065« (Сергей Перовский)
    ___________________________
    Что касается примечания переводчика про B^2, то оно на мой взгляд не совсем корректно, с умножением можно справится алгоритмически и при В равном MAXINT.
    Согласен. Но количество кода и проблем должно при этом увеличиться.
     hugi


    № 1066   31-08-2006 07:23 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1065« (Сергей Перовский)
    ___________________________
    Если Вам приходилось эмулировать 32 разрядный integer на байтовом (или 4 битном) процессоре, то легко представить, что с помощью тех же алгоритмов можно эмулировать целое произвольной длины с помощью достаточного количества integer-ов. Так проблема в том и заключается, что библиотеки эмуляции n-разрядных чисел рассчитаны на конечное, ОПРЕДЕЛЕННОЕ ПРИ РАЗРАБОТКЕ БИБЛИОТЕКИ число битов. Во всяком случае, я не видел таковых для произвольного числа. Если мы эмулируем 128-битовое число, то в Delphi его можно задавать, как TMy128Bit = packed record i3,i2,i1,i0:cardinal end;
    Но и 128 бит в строковом представлении - это не так и много. А как же работать с числами, представление которых размером с простыню?


    № 1065   31-08-2006 06:43 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1063« (Артем)
    ___________________________
    Там конечно опечатка: основанием является MAXINT+1.
    В таком случае последовательность integer значений представляет собой по сути увеличенный integer. Если Вам приходилось эмулировать 32 разрядный integer на байтовом (или 4 битном) процессоре, то легко представить, что с помощью тех же алгоритмов можно эмулировать целое произвольной длины с помощью достаточного количества integer-ов. Скорость этих алгоритмов будет заметно выше, чем при использовании десятичных строк.


    № 1064   31-08-2006 06:11 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1062« (hugi)
    ___________________________
    Большое спасибо за ссылку, книга замечательная.
    Что касается примечания переводчика про B^2, то оно на мой взгляд не совсем корректно, с умножением можно справится алгоритмически и при В равном MAXINT.



    № 1063   31-08-2006 06:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1062« (hugi)
    ___________________________
    Обозначим через b наибольшую степень числа 10 => b=9, для Integer, если 10  здесь - десятичное число, или b=32 (31 для знакового),если 10 здесь - двоичное. В приведенной мною библиотеке чсла обрабатываются как десятичные строки, а вы хотите обрабатывать их, как 9-ричные. Ну хорошо, как 32-ричные. Ладно, для ANSI-строк как 256-ричные (больше нельзя). Но, после получения результата, нам надо будет их (полученные n-ичные строки) проконвертировать в удобочитаемый 10-ричный формат. Я только, вот, не понимаю, что вы хотите доказать? Что процессор умеет складывать n-ичные числа, когда байт памяти есть символьное выражение числа в произвольной n-ичной системе? Кажется, процессорная арифметика рассчитана только на 2-ичную (про BCD не будем вспоминать). Все иное - суть работа со строками.
    В конце концов, у вас есть мой пример работы с бесконечными числами в Delphi (теоретически, там длина числа в 10-чном выражении может быть до 2-х миллиардов с хвостиком чисел, хотя, на практике, естественно, компьютер при таких огромных значениях, просто, зависнет). Если вы считаете, что ваш дежавю файл позволяет вам более оптимально работать с числами любого размера - приведите хотя бы свой пример сложения. А читать про числа у меня сейчас нет времени - в институте начитался :)


    <<<... | 1082—1073 | 1072—1063 | 1062—1053 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 444


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

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

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

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

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

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