Тема: Функциональное программирование

Ответить в теме
Показано с 1 по 7 из 7
  1. Вверх #1
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168

    Lightbulb Функциональное программирование

    Хотел бы узнать, что думают люди знающие про следующую вещь: функциональное программирование (или, даже более общую - декларативное). Про его профессиональное применение, и про необходимость того, чтобы изучать его в ВУЗе. Не слышал, чтобы где-то у нас читались подобные курсы. Читаются ли?

    Не секрет, что по сравнению с огромных сообществом программистов C\C++ или Java, людей, знакомых с Haskell или ML (или, например Erlang, и так далее) предельно мало. А литературы (на русском) ещё меньше. Конечно, последние языки, и функциональное программирование в целом, не так востребовано. Но оно формирует совершенно иной способ мышления, может быть даже "выворачивает на изнанку" мысли, приученные к императивному (даже +ООП) программированию. Думаю, это полезно, даже просто в целях расширения кругозора.

    Так или иначе, в последнее время все больше людей начинают интересоваться "функциональностями". Некоторые из функциональных фишек присутствуют в Python, Ruby и других языках. И в C# 3.0 и LINQ добавились идеи из функциональной парадигмы и появился новый синтаксис для лямбда-функций, поддержка ленивости и др. Появляются такие языки, как F#, Cω, Scala, и другие, которые помимо своей функциональности могут взаимодействовать с библиотеками .NET или Java. Значит, это всё-таки нужно! Как говорится, хорошо забытое старое возвращается

    Может это всё кажется несколько надуманным и не слишком полезным, но я бы не отказался прослушать курс лекций хотя бы даже по LISP-у у себя в университете. Всё-таки, сколько лет уже идее лямбда-абстракций, и эта тема достаточно формализирована, чтобы функциональное программирование пришлось по душе даже чистым математикам .

    зы: спрашивал тут, но обсуждения не вышло.
    ~ Motivation is what gets you started. Habit is what keeps you going.


  2. Вверх #2
    Частый гость Аватар для valheru
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    47
    Сообщений
    829
    Репутация
    56
    Нельзя сказать, что в наших вузах не читаются декларативные языки. Традиционно читается Prolog. Если разберешься с ним, мозги будут работать в нужном направлении для изучения и других декларативных языков.

  3. Вверх #3
    Частый гость Аватар для homo ludens
    Пол
    Мужской
    Сообщений
    751
    Репутация
    141
    Элементами функционального и декларативного программирования нормальный программист пользуется регулярно, хотя не всегда про это знает. Базовый SQL например - это декларативный язык (если не брать триггеры и процедуры). Программа на Perl с использованием анонимных процедур или фильтр на С, функции которого имеют состояния и не используют переменных будут функциональными.

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

    Без понимания функционального программирования вы не сможете придумать MapReduce — алгоритма, который делает Google столь хорошо масштабируемым. Термины Map и Reduce пришли из Lisp и функционального программирования. MapReduce понятен любому, кто помнит из своего курса, эквивалентного 6.001, что истинно функциональные программы не имеют побочных эффектов и поэтому легко распараллеливаемы. Очень показателен тот факт, что в Google изобрели MapReduce, а в Microsoft нет, и это говорит кое-что о том, почему Microsoft до сих пор играет в догонялки, пытаясь заставить работать основные функции поисковой машины, в то время как в Google перешли к следующей проблеме: построению Skynet...(стирает) величайшего в мире параллельного суперкомпьютера. Я не думаю, что Microsoft действительно понимает, насколько они отстали на этом пути.
    http://local.joelonsoftware.com/medi...%BD%D0%B0_Java
    или вообще все на http://local.joelonsoftware.com/mediawiki/index.php/Russian
    Это про необходимость изучения в ВУЗах.
    The future is already here - it is just unevenly distributed. (c) W. Gibson

  4. Вверх #4

  5. Вверх #5
    Новичок
    Пол
    Мужской
    Сообщений
    22
    Репутация
    12
    Привет, меня тоже для саморазвития интересуют какие-то лекции или занятия по функциональному программированию. Если кто-то, услышит, пожалуйста, сообщите, может, если будет время пойдем вместе компанией.

  6. Вверх #6
    Посетитель Аватар для MAxZ
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    442
    Репутация
    106
    изложите суть вкратце
    // громкие нестихающие апплодисменты

  7. Вверх #7
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    MAxZ, Попытался немного описать тут
    ~ Motivation is what gets you started. Habit is what keeps you going.


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения