Требуется решить контрольную работу по теоретической механике, состоящую из пяти заданий, вариант 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. Ожидается проработка контрольных задач и тестов для демонстрации работы модели.
Контрольные, Задачи и Тестынет заявокЗакрыт4 года назад- $50
Требуется написать код для нескольких небольших задач в рамках студенческой работы. Используйте Python, библиотеки Pandas и NumPy. Задачи связаны с финансовой тематикой, контрольные и тестовые задания.
Контрольные, Задачи и Тесты12 заявокЗакрыт3 года назад Ищется специалист для решения задач по дискретной математике, включая контрольные работы и тесты. Задача будет предоставлена на скриншоте. Опыт в информатике приветствуется.
Контрольные, Задачи и Тесты1 заявкаЗакрыт4 года назадНеобходимо провести исследование функционального ряда на сходимость и равномерную сходимость на двух заданных промежутках. Задача относится к варианту 14 и включает контрольные задачи и тесты для проверки. Подробный анализ и выводы обязательны.
Контрольные, Задачи и Тесты2 заявкиЗакрыт3 года назадНеобходимо решить задачи по договорному и международному частному праву, а также выполнить анализ судебных актов по указанным разделам. Все материалы и требования к оформлению предоставлены в архиве. Срок выполнения работы - до понедельника, стоимость 11000 рублей. Оплата производится после проверки на правильность выполнения.
Контрольные, Задачи и Тесты2 заявкиЗакрыт4 года назадНеобходимо выполнить контрольные задачи и тесты, следуя указаниям, изложенным в предоставленном файле. Обеспечить точность и соответствие требованиям задания.
Контрольные, Задачи и Тесты5 заявокЗакрыт3 года назадТребуется решить тест по курсу Теория организации. Высокий уровень сложности. Имеются дополнительные материалы для подготовки. Необходимо изучить их и пройти тест в указанное время на сайте. Оплата хорошая и договорная.
Контрольные, Задачи и Тесты2 заявкиЗакрыт3 года назадРазработать ргр «Электрорадиоизмерения» с учетом акустического сигнала звукового диапазона. Необходимо измерить частоту сигнала с точностью 0,1 кГц, учитывая параметры источника, расстояние и время регенерации результатов. Подготовить тестовые задания и контрольные работы на основе предоставленных данных.
Контрольные, Задачи и Тесты1 заявкаЗакрыт3 года назадНеобходимо выполнить контрольную работу по предмету 'стратегический менеджмент'. Исследование может быть проведено на любом предприятии. Стоимость выполнения - 5000 рублей, расчёт по итогам проверки преподавателем.
Контрольные, Задачи и Тесты2 заявкиЗакрыт4 года назад