Форум программистов, компьютерный форум, киберфорум
Наши страницы
Haskell
Войти
Регистрация
Восстановить пароль
 
Елизавета2510
0 / 0 / 0
Регистрация: 15.11.2016
Сообщений: 19
1

Работа со списками

06.03.2018, 12:42. Просмотров 424. Ответов 3

Здравствуйте!
Имеется такая задача:
Написать функцию complexMap :: [a → b] → [Int] → [Int] → [a] → [b], которая применяет функции из первого аргумента в указанном во втором аргументе порядке к списку из четвертого аргумента в порядке, определяемом третьим. Например,
complexMap
[f0, f1, f2]
[2,0,1,2, 2,0,1,2]
[3,0,1,2, 3,0,1,2]
[0, 10, 20, 30]
==
[f2 30, f0 0, f1 10, f2 20, f2 30, f0 0, f1 10, f2 20].

Как решить? По-разному пробовала, но никак не получается, не хватает знаний в Haskell
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2018, 12:42
Ответы с готовыми решениями:

Работа со списками
Даны списки L1,L2,L3. Если L1 и L2 являются подсписками L3, то сформировать новый список, удалив...

Работа со списками
Добрый день. Помогите, пожалуйста, написать программу на Haskell, которой на вход подается два...

Работа со списками
Здравствуйте! Подскажите, пожалуйста, как переделать ghci> , y <– ] в функцию, чтобы можно...

Работа со списками
Здравствуйте! Есть такая задача: Написать функцию tangledMap :: → → , которая применяет функции...

Работа со списками
Опишите функцию для задания в двух версиях: с обычной рекурсией и с хвостовой рекурсией. Описать...

3
Mysterious Light
Эксперт по математике/физике
4096 / 2005 / 410
Регистрация: 19.07.2009
Сообщений: 3,025
Записей в блоге: 22
06.03.2018, 13:50 2
Haskell
1
complexMap fs fInd xInd xs = zipWith (\ fi xi -> (fs !! fi) (xs !! xi)) fInd xInd
Внимание, встречный вопрос: что будет, если в списках с индексами (второй и третий аргументы) будет число, которому не соответствует функция или аргумент? Например, complexMap [sin] [1, 2] [2, 1] [1.]
2
Catstail
Модератор
24833 / 12628 / 2305
Регистрация: 12.02.2012
Сообщений: 20,556
06.03.2018, 20:20 3
Haskell
1
2
3
4
5
6
7
8
9
10
mapf :: [a] -> [Int] -> [a]
mapf xs ns = map (\ k -> xs !! k) ns
 
task :: [a -> b] -> [Int] -> [Int] -> [a] -> [b]
task fs ns ks xs = zipWith ($) (mapf fs ns) (mapf xs ks)
 
*Main> task [(^2),(^3),(^4)] [0,1,2,0,1,2] [0,1,2,3,4] [11,22,33,44,55]
[121,10648,1185921,1936,166375]
*Main> task [(^2),(*3),(+4)] [0,1,2,0,1,2] [0,1,2,3,4] [11,22,33,44,55]
[121,66,37,1936,165]
1
Curry
2991 / 2072 / 257
Регистрация: 01.06.2013
Сообщений: 4,526
Записей в блоге: 9
06.03.2018, 20:34 4
Haskell
1
mapf xs = map (xs !!)
1
06.03.2018, 20:34
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2018, 20:34

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

Работа со списками и подсписками
Помогите пожалуйста, нужно решить две задачи: 1. Напишите функцию ]->Int->, берущую список списков...

Работа со списками и перебор вариантов
Пожалуйста, помогите реализовать Ффункциюя, по заданному списку карт, вращающаяую список чисел,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.