Функциональное программирование::Журнал СА 10.2014
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6314
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7023
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4306
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3057
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3855
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3870
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6360
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3213
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3504
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7324
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10686
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12410
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14051
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9173
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7120
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5429
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4661
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3467
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3193
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3435
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3065
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

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

Архив номеров / 2014 / Выпуск №10 (143) / Функциональное программирование

Рубрика: Карьера/Образование /  Образование в сети

Игорь Штомпель ИГОРЬ ШТОМПЕЛЬ, инженер, системный администратор. Сфера профессиональных интересов – свободное программное обеспечение, keepercoder@gmail.com

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

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

Основы функционального программирования

  • Авторы: Л.В. Городняя.
  • Учебное заведение: Интернет-Университет Информационных Технологий (ИНТУИТ, intuit.ru).
  • Специальность: Программист.
  • Лекции: 15.
  • Материалы: Текст.
  • Уровень сложности: Специалисты.
  • Сертификат: Да.
  • Источник: http://old.intuit.ru/department/pl/funcpl.

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

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

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

Большой темой курса стали методы расширения функциональных систем – с помощью иерархии разнородных контекстов определений, а также обобщения базовой схемы обработки символьных выражений и представленных с их помощью функциональных форм на основе списков свойств атомов. Также рассмотрен функциональный подход к низкоуровневому программированию, который использовался при создании Лисп и компиляции функциональных программ.

Отметим еще навыки и знания, которые слушатели смогут приобрести, пройдя курс до конца: использование структур данных, которые удобны при динамической обработке информации; понимание связи функционального программирования и объектно-ориентированного; умение обобщать процесс информационной обработки на базе возможностей отложенных действий (lazy evaluation) и многое другое.

Курс является хорошим введением в ФП, особенно для тех, кто хочет начать с языка программирования Лисп.

Введение в программирование на Лиспе

  • Авторы: Л.В. Городняя, Н.А. Березин.
  • Учебное заведение: Интернет-Университет Информационных Технологий (ИНТУИТ, intuit.ru).
  • Специальность: Программист.
  • Лекции: 12.
  • Материалы: Текст.
  • Уровень сложности: Специалисты.
  • Сертификат: Да.
  • Источник: http://old.intuit.ru/department/pl/lisp.

Авторы считают, что знакомство с Лиспом «важная составляющая современного образования в области информатики». Более того, на их взгляд, этот язык является ключом для исследования основных задач системного программирования, а также искусственного интеллекта. Особенностью курса является то, что в качестве основного программного обеспечения в нем задействуется GNU Clisp.

Лекции начинаются с введения базовых понятий. Слушатели узнают о концепции символьной обработки данных, об обозначениях и определениях, списках и т.п., познакомятся с основами символьной обработки данных и принципами ФП. Отталкиваясь от этой базы, авторы предлагают освоить работу GNU Clisp: диалог с ней, запуск Лисп-программ из файлов, пошаговое вычисление и т.п.

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

Кроме того, лекции позволяют научиться эффективной работе с определениями функций и освоить механизмы эффективной работы со структурами данных в памяти на базе свойств атомов, работы с памятью и др., а также работе с расширениями и приложениями Лиспа.

В целом курс позволяет познакомиться с основами языка Лисп и получить базу для дальнейшего совершенствования навыков программирования на этом языке.

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

  • Авторы: Д.В. Сошников.
  • Учебное заведение: Интернет-Университет Информационных Технологий (ИНТУИТ, intuit.ru).
  • Специальность: Программист.
  • Лекции: 30.
  • Материалы: Видео, презентации (в формате .ppt).
  • Уровень сложности: Специалисты.
  • Сертификат: Да.
  • Источник: http://old.intuit.ru/department/pl/funcprog.

Курс преследует цель ознакомления слушателей с основами ФП (как дисциплины на стыке программирования и дискретной математики), научить программированию на F#, а также показать связь между теорией информатики (Computer Science в авторской терминологии) и программированием. Ориентирован как на практикующих программистов, так и на математиков и студентов.

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

Свое дальнейшее развитие рассмотрение ФП в курсе получает в виде изучения ряда специальных тем. В частности, слушатели узнают о функциональных структурах данных, лямбда-исчислениях, деревьях, рекурсии (виды, структуры данных, хвостовая), работы со списками, редукции (в том числе нормального и апликативного порядка), функциях нескольких аргументов, каррировании, условных выражениях, последовательностях и ленивых вычислений на F#, мемоизации, комбинаторах и комбинаторной логике и т.п.

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

Особенностью курса являются примеры построения графика 2D-функции, работы со списками, реализации машины Тьюринга на F#.

В целом лекции позволяют заложить отличный фундамент в области ФП, но с одной оговоркой: с учетом специфики F# они в первую очередь подойдут тем, кто работает в операционной системе Windows в среде Visual Studio.

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

  • Авторы: А. Кубенский.
  • Учебное заведение: Проект Лекториум (lektorium.tv).
  • Специальность: Программист.
  • Лекции: 14.
  • Материалы: Видео.
  • Уровень сложности: Специалисты.
  • Сертификат: Нет.
  • Источник: http://www.lektorium.tv/course/22848.

Помимо Лиспа и F#, важное место среди языков ФП занимает Haskell. Именно на базе этого языка и основан предлагаемый курс, который автор начинает с введения в ФП. Из него слушатели узнают об основах функционального стиля и о языке программирования Haskell. Что касается последнего, то на этапе введения предлагается ознакомиться с его основными типами данных и интерпретаторами, а также с определением функций в нем. Кстати, на этапе введения освещается интересный вопрос о том, почему не получается программировать в функциональном стиле на традиционных языках.

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

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

В заключение курса слушатели смогут ознакомиться с такой проблемой, как интерпретация и компиляция функциональных программ. Речь идет об Eval/Apply-интерпретаторе, эффективной и ленивой интерпретациях, SECD-машине. Другие проблемы, которым посвящены заключительные лекции, – представление последовательных процессов в ФП и введение в комбинаторную редукцию.

Отдельно стоит отметить то, что ряд лекций посвящен таким темам, которые не всегда находят отражение в курсах, посвященных ФП, как техника «завязывания узлов» и системы ФП. В рамках первой предлагается познакомиться с примерами программирования регулярных выражений и функционального представления графов, а в рамках второй – с Лисп и FP. Курс можно рассматривать как позволяющий расширить представление в области ФП. Его можно изучать после прохождения первых двух описанных в этой статье, если вы не специализируетесь на платформе Windows. Если же вы интересуетесь ФП в целом, то можно изучить все курсы из нашего обзора и получить цельное представление о его состоянии и реализациях соответствующих программных систем, их возможностях и особенностях использования на нескольких платформах.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru