WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Тема 4. Введение в функциональное

программирование

Автор:

А. С. Власовских

Лицензия:

Creative Commons Attribution-Noncommercial-Share Alike 3.0

Тема 4. Введение в функциональное программирование 1

План ближайших лекций по ФП

Введение в ФП (эта лекция)

-исчисление как базис ФП

Основы и идиомы ФП, язык Scheme Системы типов, побочные эффекты, язык Haskell Мультипарадигменные языки, язык Python Тема 4. Введение в функциональное программирование 2 Суть парадигмы ФП Использование чистых функций Отсутствие изменяемого состояния Элегантные небольшие функции, при этом выразительные Более короткие программы, активное использование абстракции Управление побочными эффектами функций Минимизация, управление или отказ от побочных эффектов Функциональное процедурное программирование Тема 4. Введение в функциональное программирование Функциональная чистота Функциональная чистота — отсутствие побочных эффектов Функции в математическом смысле как отображение множеств Побочные эффекты — всё, помимо преобразования входных данных в выходные Глобальное изменяемое состояние, ввод-вывод и т. п.

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

Тема 4. Введение в функциональное программирование Императивное vs. функциональное Ячейки памяти vs. неизменяемые значения Императивная программа исполняется инструкция за инструкцией, изменяя значения ячеек памяти Функциональная программа вычисляет значения на основе других значений Терм x в ИП — имя позиции в памяти, а в ФП — имя значения, которое не меняется в области видимости Возможно программирование без изменяемого состояния Можно ли написать хоть что-то полезное без оператора присваивания?

Тезис Чёрча-Тьюринга об эквивалентности императивных и функциональных программ Рекурсия заменяет итерацию Итерация проходит по одинаковым ячейкам с разными значениями В ФП нет изменяемых значений. Рекурсия с передачей новых аргументов Для получения такой же оценки сложности алгоритмов используется оптимизация хвостовых вызовов Тема 4. Введение в функциональное программирование История функциональных языков (1) 1958, Lisp Один из первых языков. Создан Джоном Маккарти Работа с символьными данными и списками для задач ИИ Породил целое семейство Lisp в лабораториях ИИ 1973, ML Создан Робином Милнером Для доказательства теорем Вывод типов по Хиндли-Милнеру, полиморфизм, важность -исчисления Создано много языков на основе ML 1975, Scheme Создан Стилом и Сассманом Для исследований языков, обучения. Продолжает развиваться Тема 4. Введение в функциональное программирование История функциональных языков (2) 1980-е Стандартизация Common Lisp Очередное свёртывание исследований ИИ и применения Lisp Общий ленивый функционально чистый язык, частично на основе ML Функциональные расширения языков сценариев Объектный диалект ML. Мультипарадигменный, эффективные программы F#, диалект OCaml под влиянием C# и Haskell для платформы.NET Clojure, диалект Lisp под влиянием Haskell, Erlang. Подход к параллельности Haskell, OCaml, Common Lisp, Scheme, Erlang, Clojure, XSLT и др.

Модель вычислений функциональных языков Механизм исполнения программ ФП На его основе строится исполнение, аналогично машинным инструкциями в На практике используются только элементы исчисления, программы Очень компактная формальная система 4 синтаксических формы: переменные, константы, -абстракции и применения Функции — полноправные значения Могут передаваться как аргументы, возвращаться как значения, именоваться Некоторые из этих свойств есть и в императивных языках (делегаты, указатели Абстракция шаблонов вычислений Выполнение преобразования над каждым элементом списка: удвоение, преобразование в строку и пр. Передача функции преобразования как аргумента Фильтрация списка. Передача в качестве аргумента функции-предиката из типа Требуются только функции одного аргумента Проще понимать и рассуждать о программе На результат влияют только аргументы и значения из области видимости Интерфейс функции это её тип. Легче выявлять, на что влияют изменения в коде Не требуется моделирование внешнего окружения, mock-объектов и пр.

В ИП общее изменяемое состояние потоков через блокировки, сложная В ФП нет изменяемого состояния и блокировок, сложно допустить ошибку Но автоматическая параллелизация по-прежнему не столь проста Очень часто создаются пользовательские типы данных Большое количество исследований систем типов в ФП Используются развитые системы типов Тема 4. Введение в функциональное программирование Подход Lisp. Фактически в языке смешиваются парадигмы ФП и ИП. Уменьшаются Подход раннего Haskell. Программа всего лишь преобразует строку в строку.

Сложно создавать практические программы Подход Haskell, Clean. Система типов разделяет чисто функциональную часть и часть с эффектами. Используются монады, уникальные типы Код программ обычно намного короче Можно сделать программу очень короткой, но запутанной Большие возможности абстракции Можно создавать код на уровне абстракции приложения Внутренние предметно-ориентированные языки DSL, например, для парсинга можно создать BNF-подобный язык внутри языка ФП Могут возникать проблемы с производительностью Раньше код на языках ФП был значительно медленнее, чем ИП. Сейчас Не всегда очевидная реализация алгоритма будет эффективной Simon Peyton Jones on Functional Programming and Haskell [Electronic Resource] / M. Vlter // Software Engineering Radio. — 2008. — No.

108. — http://se-radio.net/podcast/2008-08/episode-108-simon-peytonjones-functional-programming-and-haskell Аудиозапись интервью с одним из разработчиков Haskell Себеста Р. У. Основные концепции языков программирования. — Вильямс, 2001. — urn:isbn:5-8459-0192- Гл. 14. Функциональные языки программирования



Похожие работы:

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Ярославский государственный университет им. П.Г. Демидова Физический факультет УТВЕРЖДАЮ Проректор по развитию образования _Е.В.Сапир _2012 г. Рабочая программа дисциплины послевузовского профессионального образования (аспирантура) Английский язык по специальности научных работников 01.04.07 Физика конденсированного состояния Ярославль 2012 2 1. Цели освоения дисциплины Целями освоения дисциплины английский язык в соответствии с общими...»

«УДК 373.167.1 ББК я721 В86 Авторы-составители: Богомолова И. В., Гераськина И. Ю., Давыдова О. С., Зубанова С. Г., Зякина О. А., Лебедева Г. Н., Петров Д. Е., Синаторов С. В., Щербакова Ю. В. Вся школьная программа в одной книге. Справочник В86 школьника в кратком изложении. 5–11 класс / [авт.-сост. : И. В. Богомолова, И. Ю. Гераськина, О. С. Давыдова и др.]. – М. : РИПОЛ классик, 2010. – 896 с. : ил. : табл. ISBN 978-5-386-02429-1 Данное пособие предназначено для учащихся 5–11-х классов. В...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ГОУ ВПО Уральский Государственный Экономический Университет УТВЕРЖДАЮ Проректор по учебной работе Л. М. Капустина _2011 г. ПСИХОЛОГИЯ ТРУДОВОЙ ДЕЯТЕЛЬНОСТИ Программа учебной дисциплины Наименование специальности 080507.65 Менеджмент организации Екатеринбург 2011 2 1. ЦЕЛИ ОСВОЕНИЯ УЧЕБНОЙ ДИСЦИПЛИНЫ Одной из дисциплин, имеющих как теоретическое, так и прикладное значение для современного конкурентоспособного субъекта социума является...»

«ФГБОУ ВПО НОВОСИБИРСКИЙ ГОСУДАРСТ ВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ ИНЖЕНЕРНЫЙ ИНСТ ИТУТ КАФЕДРА АВТОМОБИЛИ И ТРАКТРЫ ГОС - 2001 УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС ПО ПРАКТ ИКАМ для специальности 190601.65 Автомобили и автомобильное хозяйство НОВОСИБИСРК 2010 НОВОСИБИРСКИЙ ГОСУД АРСТ ВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ ИНЖЕНЕРНЫЙ ИНСТ ИТУТ Кафедра Автомобили и тракторы Рег. № АА.65-71 ПП2 УТВЕРЖДАЮ _ _ 2010 г. Директор института _Ю.Н. Блынский _ _ 2010 г. ГОС – 2001 г. РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ...»

«Издание 1 страница 1 из 72 ОГЛАВЛЕНИЕ 1 Общие положения..3 2 Характеристика профессиональной деятельности выпускника ООП ВПО по направлению подготовки 110800 Агроинженерия (Технологическое оборудование для хранения и переработки сельскохозяйственной продукции)..3 3 Требования к результатам освоения основной образовательной программы по направлению подготовки 110800 Агроинженерия (Технологическое оборудование для хранения и переработки сельскохозяйственной продукции)..4 4 Документы,...»

«Г.А. СИДОРОВ Тайный проект Вождя или НЕОСТАЛИНИЗМ УДК 94(47) ББК 63.3(2) С 347 Г.А. Сидоров. Тайный проект Вождя, или Неосталинизм - М.: Родович, 2012-464 стр., ил. Издание данной книги осуществляется по заказу Народно-патриотического движения России Отечество, Свобода, Справедливость и Общественного Совета Гражданского общества www. sovet-naroda. ru ISBN 978-5-904036-15-7 УДК 94(47) © Г.А. Сидоров, 2012 © ООО РОДОВИЧ, 2012 © Общественный Совет Гражданского общества объединённых патриотических...»

«УТВЕРЖДАЮ Зав. кафедрой клинической морфологии с курсом онкологии _ доц. А.С.Купрюшин 2011 г. РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ ГИСТОЛОГИЯ, ЭМБРИОЛОГИЯ, ЦИТОЛОГИЯ Направление/специальность подготовки 060101 – Лечебное дело Профиль/специализация подготовки 060101 – Лечебное дело _ Квалификация (степень) выпускника – специалист Форма обучения очная – очная г. Пенза - 2011 г. ЦЕЛИ ОСВОЕНИЯ УЧЕБНОЙ ДИСЦИПЛИНЫ 1. Целями освоения учебной дисциплины гистологии, эмбриологии, цитологии являются:...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГБОУ ВПО Уральский государственный экономический университет УТВЕРЖДАЮ Проректор по учебной работе Л.М. Капустина _2011 г. ИСТОРИЯ ЭКОНОМИКИ Программа учебной дисциплины Наименование специальности 080401 Товароведение и экспертиза товаров Наименование специализации Товароведение и экспертиза в области таможенной деятельности Екатеринбург 2011 1. ЦЕЛИ ОСВОЕНИЯ УЧЕБНОЙ ДИСЦИПЛИНЫ Цели освоения учебной дисциплины История экономики состоят в...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Ярославский государственный университет им. П.Г. Демидова Исторический факультет УТВЕРЖДАЮ Проректор по развитию образования _Е.В.Сапир _2012 г. Рабочая программа дисциплины послевузовского профессионального образования (аспирантура) Актуальные проблемы всеобщей истории по специальностям научных работников 07.00.03 Всеобщая история (история Древнего мира; новая история; новейшая история) Ярославль 1. Цели освоения дисциплины Дисциплина...»

«1 Программа развития транспортного комплекса Приморского края на период 2004–2010 гг. 2 Программа развития транспортного комплекса Приморского края на период 2004–2010 гг. 3 Программа развития транспортного комплекса Приморского края на период 2004–2010 гг. 4 Программа развития транспортного комплекса Приморского края на период 2004–2010 гг. 5 Программа развития транспортного комплекса Приморского края на период 2004–2010 гг. АДМИНИСТРАЦИЯ ПРИМОРСКОГО КРАЯ СТРАТЕГИЯ СОЦИАЛЬНО-ЭКОНОМИЧЕСКОГО...»

«Группа компаний AMB Group ПРОГРАММА создания Единого информационного пространства Украины на 2007-2010 годы (проект) Программа создания Единого информационного пространства Украины Содержание Программы 1. Назначение программы 2. Общие положения 2.1. Роль информационно-телекоммуникационных технологий 2.2. Текущие проблемы Украины 3. Единое информационное пространство Украины 3.1. Понятие Единого информационного пространства Украины 3.2. Основные задачи единого информационного пространства...»

«Тамбовское областное государственное бюджетное образовательное учреждение Жердевская общеобразовательная школа-интернат среднего (полного) общего образования Рассмотрена и рекомендована к утверждению Протокол Методического совета от 08.09.201 ПредсМатёлуМетодического совета y f a y ^ О.С.Паршина Рабочая программа учебного предмета Английский язык для 8 - А класса на 2011-2012 учебный год Составитель: С.Ю.Завьялова учитель английского языка ПОЯСНИТЕЛЬНАЯ ЗАПИСКА Рабочая программа предмета...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Тамбовский государственный технический университет (ФГБОУ ВПО ТГТУ) УТВЕРЖДАЮ Председатель Методического совета факультета Энергетический Т.И. Чернышова 24 мая 20 12 г. Вводится в действие с 01 сентября 20 12 г. РАБОЧАЯ ПРОГРАММА Государственного экзамена Для студентов, обучающихся по специальности: 210201.65 – Проектирование и...»

«Учебно-методический центр Экологическая безопасность Образовательная программа повышения квалификации Обеспечение экологической безопасности при работах в области обращения с опасными отходами реализуется в соответствии с требованиями к минимуму содержания дополнительной профессиональной образовательной программы повышения квалификации, представленной Министерством образования и науки Российской Федерации 31.07. 2008 Программу разработали: 1. проф., д.т.н. Беспалов В.И. 2. доц., к.т.н. Демченко...»

«Специализированное конструкторское бюро ПРОМИНФОРМ ССС УТВЕРЖДЕН АПК АРМТ.100.000-11 32 04 - ЛУ АППАРАТНО-ПРОГРАММНЫЙ КОМПЛЕКС АВТОМАТИЗИРОВАННЫХ РАБОЧИХ МЕСТ ТЕЛЕФОНИСТОВ АВТОМАТИЗИРОВАННЫЙ МЕЖДУГОРОДНЫЙ КОММУТАТОР Коммутационное оборудование РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА АПК АРМТ.100.000-11 32 04 г. Миасс 2009 Лист АПК АРМТ.100.000-11 Содержание 1 ОБЩИЕ СВЕДЕНИЯ 1.1 Схема комплекса 1.2 Основные понятия и определения 1.3 Условия применения 1.4 Модель функционирования системы 1.5...»

«РАЗРАБОТАНА УТВЕРЖДЕНА Кафедрой ботаники, почвоведения и Ученым советом биологического биологии экосистем факультета 6.03.2014, протокол № 9 13.03.2014, протокол № 5 ПРОГРАММА ВСТУПИТЕЛЬНОГО ИСПЫТАНИЯ для поступающих на обучение по программам подготовки научнопедагогических кадров в аспирантуре в 2014 году Направление подготовки 06.06.01 Биологические науки Профиль подготовки 03.02.01 Ботаника Астрахань – 2014 г. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА Содержание программы ориентирует аспирантов и соискателей на...»

«МИНИСТЕРСТВО ЗДРАВООХРАНЕНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Учреждение образования БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ МЕДИЦИНСКИЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ Первый проректор, профессор С.Д. Денисов _ _ 2011 г. Рег. № УД- /р КЛИНИЧЕСКАЯ ИММУНО ЛОГИЯ, АЛЛЕРГОЛОГИЯ Учебная программа для специальности 1-79 01 02 Педиатрия Факультет педиатрический Кафедра 1-я детских болезней Курс(ы) 5 Семестр(ы) 9 Лекций 10 час. Формы аттестации: Семестр Практических занятий 30 час. экзамен Лабораторных занятий зачет - Всего часов...»

«МИНИСТЕРСТВО СПОРТА, ТУРИЗМА И МОЛОДЕЖНОЙ ПОЛИТИКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ДЕЛАМ МОЛОДЕЖИ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ им. М.А. ШОЛОХОВА СБОРНИК ТЕЗИСОВ ПО МАТЕРИАЛАМ НАУЧНО–ПРАКТИЧЕСКОЙ КОНФЕРЕНЦИИ СОВЕРШЕНСТВОВАНИЕ СИСТЕМЫ ФОРМИРОВАНИЯ КАДРОВОГО ПОТЕНЦИАЛА...»

«Вместе для общественного участия! Общественный диалог в городе Ош. Справочник по общественному участию Ош-2012 Справочник подготовлен в рамках проекта Вместе для общественного участия софинансированного в рамках программы Министерства иностранных дел Республики Польша в 2012 г. Программа Поддержка Демократии Вместе для общественного участия! Общественный диалог в городе Ош. Данная публикация осуществлена в рамках проекта: Вместе для общественного участия! Общественный диалог в городе Ош....»

«Омский государственный университет Химический факультет Кафедра неорганической химии Дополнительная обучающая программа Прикладная экология Методические материалы и рабочая программа по курсу ГЕОХИМИЯ ОКРУЖАЮЩЕЙ СРЕДЫ для студентов химического факультета Омск- 2005 Учебная программа Геохимия окружающей среды составлена в соответствии с государственным образовательным стандартом высшего профессионального образования по специальности 013400 – Природопользование и специальности – 013600 –...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

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