Необходимо решить контрольную работу по теоретической механике из пяти заданий. Вариант 7. Выполнить необходимо к понедельнику. Итоговая стоимость контрольной работы 2500 рублей за все. Задание прилагаю. Оплата на карту.
7 небольших задач Haskell
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Ниже приведено само задание. Срок до воскресенья(26.09.2021)
{-# LANGUAGE FlexibleContexts #-}
import Data.Semigroup ( Max, Min, Endo(Endo, appEndo) )
import Data.Monoid
import Control.Monad.Writer
-- 1. Prelude говорит, то значением выражения div x y для целых x и y
-- является частное x и y, округленное вниз (то есть к минус бесконечности).
-- Однако выражение
-- -7 `div` 3
-- возвращает -2, а не -3, как можно было ожидать. Объясните подробно,
-- почему так получается и как можно получить правильный результат
-- целочисленного деления -7 на 3.
-- Указание. Можно пользоваться командой :i интерпретатора GHCi,
-- печатающей информацию о введенных именах. Полезная информация также
-- содержится в Prelude и разделах 3.4 и 4.4.2 Haskell 2010 Language
-- Report.
-- 2. Следующая задача была предложена на контрольной в середине
-- весеннего семестра, однако все решения были излишне сложными.
-- Без использования рекурсии напишите функцию abbrev :: [String] -> String,
-- которая в заданном списке имен людей выполняет сокращение всех
-- имен, кроме фамилии, до инициалов. Фамилией считается последнее
-- слово. Например:
-- > putStrLn $ abbrev ["Синицин"]
-- "Синицин"
-- > putStrLn $ abbrev ["Сергей", "Есенин"]
-- "С.Есенин"
-- putStrLn $ abbrev ["Игорь", "Федорович", "Поддубный"]
-- "И.Ф.Поддубный"
-- putStrLn $ abbrev ["Иоганн", "Хризостом", "Вольфганг", "Амадей", "Моцарт"]
-- "И.Х.В.А.Моцарт"
-- Решение должно удовлетворять следующим условиям.
-- (а) Оно должно состоять из одной строчки, не считая объявления типа.
-- (б) Следует использовать правую свертку для непустых списков.
-- (в) Функция должна иметь временную сложность O(n), где n — длина
-- списка, но не общая длина слов в списке.
-- (г) Не следует использовать функцию (++) там, где можно обойтись
-- более простыми функциями.
abbrev :: [String] -> String
abbrev = undefined
-- 3. Напишите рекурсивную функцию
-- foldMapList :: Monoid m => (a -> m) -> [a] -> m
-- которая может использоваться для объявления членства типа списков
-- в классе Foldable.
-- 4. В Prelude функции foldr определена через foldMap следующим образом.
-- foldr f z t = appEndo (foldMap (Endo . f) t) z
-- С учетом вашего ответа на предыдущий вопрос объясните, как работает
-- это определение, если t — список, и почему оно эквивалентно
-- обычному определению из лекции 5.
--foldr f z [] = z
--foldr f z (x:xs) = f x (foldr f z xs)
-- 5. Рассмотрим следующие определения.
l :: [String]
l = ["ab", "cd", "ef"]
f1 :: [String] -> String -> String
f1 = mconcat . map showString
f2 :: [String] -> String -> String
f2 = appEndo . mconcat . map (Endo . showString)
-- Объясните, что возвращают f1 и f2, в чем между ними разница и какова ее причина.
-- Указание. Определение моноидных операций на различных типах, в том
-- числе на типе функций (a -> b) и типе эндоморфизмов (Endo a),
-- находятся в модуле Data.Semigroup.
-- 6. Напишите функцию
minMax :: [Int] -> (Int, Int)
minMax = undefined
-- которая возвращает пару, состоящую из минимального и максимального
-- элементов непустого списка. Она должна использовать следующую
-- рекурсивную функцию, которая выполняет основную работу.
minMaxLoop :: [Int] -> Writer (Min Int, Max Int) ()
minMaxLoop = undefined
-- Определения типов Min a и Max a, являющихся моноидами с операциями
-- min и max, соответственно, находятся в модулях Data.Semigroup и
-- Data.Monoid. Они аналогичны моноидам Sum a и Product a,
-- рассмотренным на лекциях.
-- Функция minMaxLoop не должна явно использовать операторы сравнения, а также
-- функции min, max, minimum и maximum. В определении minMax можно использовать
-- функцию execWriter, определенную в Control.Monad.Writer.
-- 7. Подставьте определения функций flip и (.) из Prelude в терм
-- flip (.) и, выполняя по одной редукции за шаг, найдите нормальную
-- форму этого терма.
- Похожие заказы
- Контрольные, Задачи и Тесты3 заявкиЗакрыт3 года назад
Решить Задачу при помощи программы GPSS
Контрольные, Задачи и Тестынет заявокЗакрыт3 года назад- $50
Python, Pandas, NumPy Предметная область - финансы
Контрольные, Задачи и Тесты12 заявокЗакрыт3 года назад Помогите пожалуйста решить задачу , задачу размещу на скриншоте.
Контрольные, Задачи и Тесты1 заявкаЗакрыт3 года назадНа сходимость и равномерную сходимость на двух промежутках. Вариант 14
Контрольные, Задачи и Тесты2 заявкиЗакрыт3 года назадДобрый день, уважаемые юристы. Задача такая: решить задачи по договорному и международному частному праву. А также выполнить анализ судебных актов по договорному, наследственному и международному частному праву. Все задачи, акты и требования к оформлению приложены в ...
Контрольные, Задачи и Тесты2 заявкиЗакрыт3 года назадЧто необходимо делать написано в файле
Контрольные, Задачи и Тесты5 заявокЗакрыт3 года назад[b]Предмет:[/b] Теория организации[b]Задача:[/b] Решение теста по курсу [b]ВУЗ:[/b] Один из ведущих вузов России[b]Сложность:[/b] высокий уровень сложности[b]Оплата:[/b] Хорошая. Договорная[b]Дополнительная информация:[/b] Имеются дополнительные материалы и лекции по курсу Теория организации для подготовки к тесту. Необходимо изучить материалы, подготовиться к тесту и в указанное время ...
Контрольные, Задачи и Тесты2 заявкиЗакрыт3 года назадПараметры измеряемого сигнала: - акустический сигнал звукового диапазона; - мощность источника сигнала — 1Вт; - диаграмма направленности источника — сфера; - расстояние между источником сигнала и устройством обработки — 8 м. Спектральный состав имеет две составляющие, частоты которых находятся ...
Контрольные, Задачи и Тесты1 заявкаЗакрыт3 года назадДобрый день. Необходимо выполнить контрольную работу по предмету "стратегический менеджмент". Для исследования можете брать любое предприятие. Стоимость работы 5000 рублей за все. Рассчет на карту по итогу проверки преподавателем
Контрольные, Задачи и Тесты2 заявкиЗакрыт3 года назад