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

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

Мониторинг  

Какая задача мониторинга отнимает больше всего времени?

Многие системные администраторы тратят до 30% рабочего времени на рутину мониторинга. Но

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

Рынок труда  

Какие навыки вы хотите развивать в 2026 году?

Рынок труда меняется быстро. Еще вчера его называли рынком соискателей, а сегодня

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

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

От сисадмина до архитектора: книги, которые прокачают ваш стек в этом году

Новинки от издательства «БХВ» отличаются тем, что в них часто делается упор

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

Автоматизация  

Автоматизируем рутину: что реально работает?

Многие сисадмины автоматизировали что-то за последний год. Но далеко не все остались

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

Защита ИТ-системы  

Практическая защита: что вы внедрили и что мешает?

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

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

Вопрос-ответ  

Обеспечиваем безопасную эксплуатацию базы данных

Что для вас чаще всего является причиной инцидентов с БД? Как вы

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

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

От «безопасного» Linux до Контролируемого взлома

Издательство «БХВ» продолжает радовать читателей интересными новинками и в наступившем году. Вы можете

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Друзья сайта  

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

Архив номеров / 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