Главная страница   
Экстренная связь
Сейчас на сайте

Админов: 3 из 8
Исполнителей: 12 из 189
Клиентов: 25 из 8291

Наша помощь
Оценить задание
• Программирование
Информатика
Базы данных
СУБД
• Разработка ПО
Бухгалтерский учёт
Экономика, Аудит
Финанс. менеджмент
Финансовый анализ
Эконом. теория
Эконом. предприятия
Финансы и кредит
Менеджмент
Маркетинг
• ТУСУРовцам
Юриспруденция
Право
Психология
Психологическая консультация
Математика
Исследование операций
Методы оптимизации
Физика
Радиотехника
Электроника
Схемотехника
Механика
Метрология
• Перефразирование
История
Английский
Другой предмет
Готовые работы
• Каталог
Программирование
Экономика, Аудит
Бухгалтерский учёт
Финансы и кредит
Юриспруденция
Право
История
Психология
Механика
Информация
О сайте
Наши цены
Соглашение
Наши гарантии
Способы оплаты
Вопросы и ответы
Отзывы клиентов
Бонусы и скидки
Регистрация
Вакансии
Написать письмо
Мы работаем
ЕЖЕДНЕВНО
с 9:30 до 23:30 msk
Поиск по сайту
Разное
Архив заказов
Анекдоты
Облака тегов
Карточные игры
Преподы-монстры
Антиплагиат
Мысли вслух

Банковские карты
QIWI
Юmoney


Яндекс.Метрика











HOMEWORK #0. Task 1. Task 2. Task 3. Task 4. Task 5. Task 6.

Лабораторная работа
в среде программирования Haskell



Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: Haskell

Название работы: HOMEWORK #0. Task 1. Task 2. Task 3. Task 4. Task 5. Task 6.

Вид работы: Лабораторная работа

Описание: HOMEWORK #0
Task 1
1. Create a module named HW0.T1 and define the following type in it:
data a <-> b = Iso (a -> b) (b -> a)
flipIso :: (a <-> b) -> (b <-> a)
flipIso (Iso f g) = Iso g f
runIso :: (a <-> b) -> (a -> b)
runIso (Iso f _) = f
2. Implement the following functions and isomorphisms:
distrib :: Either a (b, c) -> (Either a b, Either a c)
assocPair :: (a, (b, c)) <-> ((a, b), c)
assocEither :: Either a (Either b c) <-> Either (Either a b) c
Task 2
1. Create a module named HW0.T2 and define the following type in it:
type Not a = a -> Void
2. Implement the following functions and isomorphisms:
doubleNeg :: a -> Not (Not a)
reduceTripleNeg :: Not (Not (Not a)) -> Not a
Task 3
1. Create a module named HW0.T3 and define the following combinators in it:
s :: (a -> b -> c) -> (a -> b) -> (a -> c)
s f g x = f x (g x)
k :: a -> b -> a
k x y = x
2. Using only those combinators and function application (i.e. no lambdas, pattern
matching, and so on) define the following additional combinators:
i :: a -> a
compose :: (b -> c) -> (a -> b) -> (a -> c)
contract :: (a -> a -> b) -> (a -> b)
permute :: (a -> b -> c) -> (b -> a -> c)
For example:
i x = x -- No (parameters on the LHS disallowed)
i = \x -> x -- No (lambdas disallowed)
i = Prelude.id -- No (only use s and k)
i = s k k -- OK
i = (s k) k -- OK (parentheses for grouping allowed)
Task 4
1. Create a module named HW0.T4.
2. Using the fix combinator from the Data.Function module define the following
functions:
repeat' :: a -> [a] -- behaves like Data.List.repeat
map' :: (a -> b) -> [a] -> -- behaves like Data.List.map
fib :: Natural -> Natural -- computes the n-th Fibonacci number
fac :: Natural -> Natural -- computes the factorial
Do not use explicit recursion. For example:
repeat' = Data.List.repeat -- No (obviously)
repeat' x = x : repeat' x -- No (explicit recursion disallowed)
repeat' x = fix (x:) -- OK
Task 5
1. Create a module named HW0.T5 and define the following type in it:
type Nat a = (a -> a) -> a -> a
2. Implement the following functions:
nz :: Nat a
ns :: Nat a -> Nat a
nplus, nmult :: Nat a -> Nat a -> Nat a
nFromNatural :: Natural -> Nat a
nToNum :: Num a => Nat a -> a
3. The following equations must hold:
nToNum nz == 0
nToNum (ns x) == 1 + nToNum x
nToNum (nplus a b) == nToNum a + nToNum b
nToNum (nmult a b) == nToNum a * nToNum b
Task 6
1. Create a module named HW0.T6 and define the following values in it:
a = distrib (Left ("AB" ++ "CD" ++ "EF")) -- distrib from HW0.T1
b = map isSpace "Hello, World"
c = if 1 > 0 || error "X" then "Y" else "Z"
2. Determine the WHNF (weak head normal form) of these values:
a_whnf = ...
b_whnf = ...
c_whnf = ...

Год: 2021

Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2021-м году, в рамках этого заказа была разработана программа в среде программирования Haskell. Если у Вас похожее задание на программу, которую нужно написать на Haskell, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2021-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

Тел.: +79374242235
Viber: +79374242235
Telegram: +79374242235
ВКонтакте: vk.com/kursovikcom
WhatsApp +79374242235
E-mail: info@kursovik.com
Skype: kursovik.com





ВНИМАНИЕ ! Сотрудники сайта KURSOVIK.COM в своей работе осуществляют сбор, обработку и обобщение информации по предложенным клиентам темам. Результатом данной работы является информационная подборка, которая НЕ ЯВЛЯЕТСЯ готовой НАУЧНОЙ РАБОТОЙ, она лишь служит основой для её написания самим клиентом.
Данный сайт НЕ ЯВЛЯЕТСЯ средством массовой информации.
Данный сайт НЕ ЯВЛЯЕТСЯ рекламой каких-либо товаров или услуг.
© 2001-2022 kursovik.com
➥ Оценить задание
➥ Контакты