- Введение в язык программирования Haskell

Презентация "Введение в язык программирования Haskell" по информатике – проект, доклад

Слайд 1
Слайд 2
Слайд 3
Слайд 4
Слайд 5
Слайд 6
Слайд 7
Слайд 8
Слайд 9
Слайд 10

Презентацию на тему "Введение в язык программирования Haskell" можно скачать абсолютно бесплатно на нашем сайте. Предмет проекта: Информатика. Красочные слайды и иллюстрации помогут вам заинтересовать своих одноклассников или аудиторию. Для просмотра содержимого воспользуйтесь плеером, или если вы хотите скачать доклад - нажмите на соответствующий текст под плеером. Презентация содержит 10 слайд(ов).

Слайды презентации

Кубенский А.А. Функциональное программирование. Глава 1. Элементы функционального программирования. 1.2. Введение в язык Haskell. История языка Haskell. 1960: John McCarthy, LISP – первый функциональный язык программирования. 1978: John Backus, FP – система комбинаторного программирования. конец 197
Слайд 1

Кубенский А.А. Функциональное программирование.

Глава 1. Элементы функционального программирования.

1.2. Введение в язык Haskell

История языка Haskell

1960: John McCarthy, LISP – первый функциональный язык программирования

1978: John Backus, FP – система комбинаторного программирования

конец 1970-х: Edinburgh univ., ML – meta-language

1985-1986: David Turner, Miranda – функциональный язык с «ленивыми» вычислениями

начало 1930-х: Church, формализация функций в λ-исчислении

1990: Ericsson, Erlang – «коммерческий» функциональный язык

1988: Paul Hudak, Haskell – первая версия языка Haskell

1999: Haskell group, Haskell’98 – «стандартная» версия языка Haskell

Haskell – чисто функциональный язык программирования, названный в честь Хаскелла Карри (Haskell B. Curry – 1900-1982), известного, главным образом, благодаря работам в области математической логики и комбинаторной логики в конце 1950-х – начале 1960-х годов

http://haskell.org/onlinereport/index.html - пересмотренное сообщение о языке Haskell’98 http://haskell.org/tutorial - «Нежное» введение в Haskell

Типы данных и базовые конструкции языка Haskell. Элементарные типы данных. Integer, Int – целые значения (25, -17, 111222333444555666777888). Float, Double – вещественные значения (3.14, -2.718281828459045). Char – символьные значения ('A', '*', '3'). Bool – логические значения (True, False). Иденти
Слайд 2

Типы данных и базовые конструкции языка Haskell

Элементарные типы данных

Integer, Int – целые значения (25, -17, 111222333444555666777888)

Float, Double – вещественные значения (3.14, -2.718281828459045)

Char – символьные значения ('A', '*', '3')

Bool – логические значения (True, False)

Идентификаторы: fact, fAcToRiAl, fact_1, fact''

Знаки операций: +, -, *,

Идентификаторы применяются для обозначения констант – значений разных типов (простых, составных, функций) и типов. Любому идентификатору можно сопоставить тип и значение: school :: Integer school = 366 piHalf :: Double piHalf = 3.1415926536 / 2

Кортежи и функции. Значения могут объединяться в более сложные с помощью кортежирования. Например: pair :: (Double, Double) pair = (2.7, 3.14) attributes :: (Char, (Int, Int, Int), Bool) attributes = ('M', (17, 4, 1955), True). Тип функции определяется типами аргументов и результата, например: sin :
Слайд 3

Кортежи и функции

Значения могут объединяться в более сложные с помощью кортежирования.

Например: pair :: (Double, Double) pair = (2.7, 3.14) attributes :: (Char, (Int, Int, Int), Bool) attributes = ('M', (17, 4, 1955), True)

Тип функции определяется типами аргументов и результата, например: sin :: Double -> Double -- аргумент и результат типа Double plusInt :: Int -> Int -> Int -- два аргумента типа Int, результат Int divMod :: (Int, Int) -> (Int, Int) -- аргумент и результат - кортежи

Выражения составляются из констант применением операций и функций, например: result = sin (3.1416 / 4) - 2.5 c10 = 3 + plusInt 3 4 pair = divMod (1458, plusInt 176 192)

Операции и функции отличаются только формой записи. Следующие выражения эквивалентны: 3 + 8 и (+) 3 8 27 `div` 4 и div 27 4 7 `plusInt` 11 и plusInt 7 11

Определение функций с помощью уравнений. Уравнения задают правила, по которым происходит вычисление функции, то есть каким образом результат получается из аргументов функции, например: plusInt :: Int -> Int -> Int plusInt a b = a + b divMod :: (Int, Int) -> (Int, Int) divMod (a, b) = (a `di
Слайд 4

Определение функций с помощью уравнений

Уравнения задают правила, по которым происходит вычисление функции, то есть каким образом результат получается из аргументов функции, например: plusInt :: Int -> Int -> Int plusInt a b = a + b divMod :: (Int, Int) -> (Int, Int) divMod (a, b) = (a `div` b, a `mod` b)

Уравнения могут содержать условные выражения и рекурсивные обращения, например: factorial :: Integer -> Integer factorial n = if n == 0 then 1 else n * (factorial (n-1)) sum :: Integer -> Integer sum n = n + if n == 0 then 0 else sum (n-1)

factorial1 :: Integer -> Integer factorial1 n | n == 0 = 1 | n > 0 = n * (factorial1 (n-1))

factorial2 :: Integer -> Integer factorial2 0 = 1 factorial2 n = n * (factorial2 (n-1))

Уравнений для одной функции может быть несколько, тогда аргументы последовательно сопоставляются с образцами:

Подготовка и запуск программ. module Test where factorial :: Integer -> Integer factorial n | n == 0 = 1 | n > 0 = n * (factorial (n-1))
Слайд 5

Подготовка и запуск программ

module Test where factorial :: Integer -> Integer factorial n | n == 0 = 1 | n > 0 = n * (factorial (n-1))

Prelude> :l "MyProg.hs" Test> factorial 25 15511210043330985984000000 :: Integer Test>. Test>. Пример запуска программы на исполнение
Слайд 6

Prelude> :l "MyProg.hs" Test> factorial 25 15511210043330985984000000 :: Integer Test>

Test>

Пример запуска программы на исполнение

Исполнение программ с помощью текстовой подстановки. factorial :: Integer -> Integer factorial n | n == 0 = 1 | n > 0 = n * (factorial (n-1)). factorial 3 3 * (factorial (3-1)) 3 * (factorial 2) 3 * (2 * (factorial (2-1))) 3 * (2 * (factorial 1)) 3 * (2 * (1 * (factorial (1-1)))) 3 * (2 * (1 *
Слайд 7

Исполнение программ с помощью текстовой подстановки

factorial :: Integer -> Integer factorial n | n == 0 = 1 | n > 0 = n * (factorial (n-1))

factorial 3 3 * (factorial (3-1)) 3 * (factorial 2) 3 * (2 * (factorial (2-1))) 3 * (2 * (factorial 1)) 3 * (2 * (1 * (factorial (1-1)))) 3 * (2 * (1 * (factorial 0))) 3 * (2 * (1 * 1)) 6

Несколько определений простых арифметических функций. -- Вычисление наибольшего общего делителя двух натуральных чисел gcd :: Integer -> Integer -> Integer gcd m n | m. -- Проверка заданного натурального числа на простоту prime :: Integer -> Bool prime' :: Integer -> Integer -> Bool p
Слайд 8

Несколько определений простых арифметических функций

-- Вычисление наибольшего общего делителя двух натуральных чисел gcd :: Integer -> Integer -> Integer gcd m n | m

-- Проверка заданного натурального числа на простоту prime :: Integer -> Bool prime' :: Integer -> Integer -> Bool prime p | p p = True | p `mod` d == 0 = False | otherwise = prime' (d+1) p

Эффективность рекурсивных функций. -- Вычисление числа Фибоначчи, заданного порядковым номером fib :: Integer -> Integer fib 1 = 1 fib 2 = 1 fib n = fib (n-1) + fib (n-2). fib 6 fib 5 + fib 4 (fib 4 + fib 3) + fib 4 ((fib 3 + fib 2) + fib 3) + fib 4 (((fib 2 + fib 1) + fib 2) + fib 3) + fib 4 (((
Слайд 9

Эффективность рекурсивных функций.

-- Вычисление числа Фибоначчи, заданного порядковым номером fib :: Integer -> Integer fib 1 = 1 fib 2 = 1 fib n = fib (n-1) + fib (n-2)

fib 6 fib 5 + fib 4 (fib 4 + fib 3) + fib 4 ((fib 3 + fib 2) + fib 3) + fib 4 (((fib 2 + fib 1) + fib 2) + fib 3) + fib 4 (((1 + 1) + 1) + (fib 2 + fib 1)) + fib 4 (3 + 2) + (fib 3 + fib 2) (3 + 2) + ((fib 2 + fib 1) + 1) (3 + 2) + ((1 + 1) + 1) 8

f1 = f2 = 1 fn = fn-1 + fn-2 при n > 2

Эффективность рекурсивных функций. Концевая рекурсия. fib :: Integer -> Integer fib' :: Integer -> Integer -> Integer -> Integer -> Integer fib' n k fk fk1 | k == n = fk | k. factorial :: Integer -> Integer factorial 0 = 1 factorial n = n * factorial (n-1). factorial :: Integer -&g
Слайд 10

Эффективность рекурсивных функций. Концевая рекурсия.

fib :: Integer -> Integer fib' :: Integer -> Integer -> Integer -> Integer -> Integer fib' n k fk fk1 | k == n = fk | k

factorial :: Integer -> Integer factorial 0 = 1 factorial n = n * factorial (n-1)

factorial :: Integer -> Integer factorial' :: Integer -> Integer -> Integer factorial n = factorial' n 1 -- (factorial' n f) == (f * n!) factorial' n f | n == 0 = f | n > 0 = factorial' (n-1) (n*f)

Список похожих презентаций

Введение в язык программирования Паскаль

Введение в язык программирования Паскаль

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

Языки программирования, их классификация. Системы программирования

Задание. На слайдах будут приведены вопросы с вариантами ответа. Читай вопрос и выбирай ответ. Переход к следующему вопросу осуществляется щелчком ...
Fortan OpenMP DVM - язык параллельного программирования для кластеров

Fortan OpenMP DVM - язык параллельного программирования для кластеров

OpenMP Fortran. Высокоуровневая модель параллелизма с общей памятью Директивы, функции системы поддержки, системные переменные Спецкомментарии Недостатки: ...
Языки программирования

Языки программирования

Язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических ...
Языки программирования

Языки программирования

Компилируемые и интерпретируемые языки. Компилируемые Интерпретируемые. Программа на компилируемом языке при помощи специальной программы компилятора ...
Языки программирования

Языки программирования

Основные понятия. Computer Software Hardware Memory Processor Device Program, computer program Application software System software Data Information ...
Язык программирования Си. Строковые литералы, ввод-вывод, ветвления

Язык программирования Си. Строковые литералы, ввод-вывод, ветвления

Строковые литералы. Указываются в кавычках: "Test #2"; "Press any key...". Пустая строка: "". В тексте литерала единичные кавычки недопустимы, а двойные ...
Язык программирования С++

Язык программирования С++

Общий план курса. Объектно-ориентированное программирование (на примере основных концепций языка C++) Объектно-ориентированное проектирование. Модели ...
Языки программирования для описания задач в АСУП

Языки программирования для описания задач в АСУП

7.1. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ В АСУП. Классификация существующих языков программирования в АСУП приведена на рис.7.1. языки высокого ...
Язык программирования Си

Язык программирования Си

Элементы языка. Язык Си включает следующие элементы: Ключевые слова — оформляют различные конструкции языка: else, int, return; Знаки — играют разделительную ...
Язык программирования Паскаль

Язык программирования Паскаль

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

Язык программирования С++

История языка Си++. Язык Си++ был разработан в начале 1980-х гг. Бьерном Страуструпом из компании AT&T Bell Laboratories. Си++ основан на языке Си. ...
Язык программирования Паскаль

Язык программирования Паскаль

СТРУКТУРА ПРОГРАММЫ Программа на Паскале имеет имя и состоит из символов. В программе используются специальные зарезервированные слова, значение которых ...
Язык программирования Паскаль

Язык программирования Паскаль

Язык программирования Pascal. Язык программирования Паскаль был разработан профессором, директором Института информатики Швейцарской высшей политехнической ...
Язык программирования Бейсик

Язык программирования Бейсик

Язык программирования Basic был создан в 1964 году двумя профессорами Дартмунского университета Джоном Кенеми и Томасом Куртцом.BASIC - это первые ...
Язык программирования Паскаль

Язык программирования Паскаль

Язык разработан в 1971 году и назван в честь французского ученого Блеза Паскаля. Автор языка – швейцарский ученый Никлаус Вирт. Существует несколько ...
Язык программирования Turbo Pascal

Язык программирования Turbo Pascal

Данный учебник представляет собой пособие по программированию на языке Turbo Pascal. Текст построен в виде практического применения языка. Сопровождается ...
Язык программирования Turbo Pascal 7.0

Язык программирования Turbo Pascal 7.0

Язык программирования Pascal. Язык программирования Паскаль был разработан профессором, директором Института информатики Швейцарской высшей политехнической ...
Язык программирования Quick Basic

Язык программирования Quick Basic

Аннотация. Цель данного проекта- помочь начинающим изучить язык программирования Quick Basic. 1. Предисловие. 2. Операция присваивания. 3. Ввод данных ...
Язык программирования Scratch

Язык программирования Scratch

Что такое Язык программирования Scratsh? 02.09.2018. Одно из самых удивительных занятий нашего времени - программирование. Повелителей компьютеров ...

Конспекты

Программирование. Алгоритмы работы с величинами. Язык программирования Паскаль. Правила записи основных операторов

Программирование. Алгоритмы работы с величинами. Язык программирования Паскаль. Правила записи основных операторов

Тема:. Программирование. Алгоритмы работы с величинами. Язык программирования Паскаль. Правила записи основных операторов. . . Результаты:. ...
Язык программирования Pascal. Алфавит языка. Типы данных. Переменные и константы

Язык программирования Pascal. Алфавит языка. Типы данных. Переменные и константы

Муниципальное бюджетное общеобразовательное учреждение. средняя общеобразовательная школа №70 г. Липецка. Конспект урока по информатике и ...
Язык программирования Турбо Паскаль

Язык программирования Турбо Паскаль

Вводный урок по теме: "Язык программирования Турбо Паскаль". Цели урока:. . . усвоить понятие программы, структуры программы на языке Turbo ...
Циклы в языке программирования Pascal

Циклы в языке программирования Pascal

. Методическая разработка. . на тему. «Циклы в языке программирования Pascal. ». ...
Графические возможности языка программирования

Графические возможности языка программирования

План-конспект. урока информатики в. VII. классе. Излагаемая тема, количество часов по теме:. «. Основы алгоритмизации и программирования. » ...
Язык программирования

Язык программирования

Учитель: Тишбаева Дина Заркыновна класс 9Б. Дата: 6.10.2014. Тема: Язык программирования. Цели и задачи:. Дать понятие языка программирования. ...
Языки людей и языки программирования

Языки людей и языки программирования

Урок 12. Языки людей и языки программирования. Цели урока:. -. развивать первоначальные представления о компьютерной грамотности;. - формировать ...
Циклические алгоритмы на языке программирования работа с ними

Циклические алгоритмы на языке программирования работа с ними

Открытый урок. Тема:. « Циклические алгоритмы на языке программирования работа с ними». Учителя: Зеленецкой М.С. в 9В классе. Цели урока: ...
Решение математических примеров с использованием языка программирования Турбо Паскаль

Решение математических примеров с использованием языка программирования Турбо Паскаль

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

Использование переменных. Операции над переменными различных типов в языке программирования

КОНСПЕКТ УРОКА ПО ИНФОРМАТИКЕ В 8 КЛАССЕ. Тема урока:. Решение задач ЕГЭ по информатике по теме «Использование переменных. Операции над переменными ...

Советы как сделать хороший доклад презентации или проекта

  1. Постарайтесь вовлечь аудиторию в рассказ, настройте взаимодействие с аудиторией с помощью наводящих вопросов, игровой части, не бойтесь пошутить и искренне улыбнуться (где это уместно).
  2. Старайтесь объяснять слайд своими словами, добавлять дополнительные интересные факты, не нужно просто читать информацию со слайдов, ее аудитория может прочитать и сама.
  3. Не нужно перегружать слайды Вашего проекта текстовыми блоками, больше иллюстраций и минимум текста позволят лучше донести информацию и привлечь внимание. На слайде должна быть только ключевая информация, остальное лучше рассказать слушателям устно.
  4. Текст должен быть хорошо читаемым, иначе аудитория не сможет увидеть подаваемую информацию, будет сильно отвлекаться от рассказа, пытаясь хоть что-то разобрать, или вовсе утратит весь интерес. Для этого нужно правильно подобрать шрифт, учитывая, где и как будет происходить трансляция презентации, а также правильно подобрать сочетание фона и текста.
  5. Важно провести репетицию Вашего доклада, продумать, как Вы поздороваетесь с аудиторией, что скажете первым, как закончите презентацию. Все приходит с опытом.
  6. Правильно подберите наряд, т.к. одежда докладчика также играет большую роль в восприятии его выступления.
  7. Старайтесь говорить уверенно, плавно и связно.
  8. Старайтесь получить удовольствие от выступления, тогда Вы сможете быть более непринужденным и будете меньше волноваться.

Информация о презентации

Ваша оценка: Оцените презентацию по шкале от 1 до 5 баллов
Дата добавления:9 января 2019
Категория:Информатика
Содержит:10 слайд(ов)
Поделись с друзьями:
Скачать презентацию
Смотреть советы по подготовке презентации