Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 26
1

Построить список

15.04.2016, 18:54. Показов 1030. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
b ==> ["", "0", "1", "00", "01", "10", "11", "000", "001", "010", "011", ...]
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2016, 18:54
Ответы с готовыми решениями:

По списку целых построить список пар (частное, остаток)
определить функцию принимающую в качестве аргумента список целых чисел и целое число . результат...

Построить список, содержащий эл-ты минимального фрагмента начальной части последовательности простых чисел
Построить список, содержащий эл-ты минимального фрагмента начальной части последовательности...

Если длина списка нечетна, построить список L1, поменяв местами левую и правую половину списка
Как примерно будет выглядеть программа на хаскеле?

По списку с подсписками построить список из положительных и список из отрицательных числовых элементов
Написать функцию, которая по списку с подсписками строит списки из положительных числовых...

4
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,639
Записей в блоге: 13
15.04.2016, 21:22 2
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
nxt :: String -> String
nxt (x:xs) | (x=='1')  = '0' : (nxt xs)
           | otherwise = '1' : xs
 
isU :: String -> Bool
isU "" = True
isU (x:xs) | x == '0'  = False
           | otherwise = isU xs
 
next :: String -> String
next s | s=="" = "0"
       | isU s = take (n+1) $ repeat '0'
       | otherwise = reverse $ nxt $ reverse s
         where n = length s
 
make = iterate next ""
 
Main> take 20 make
["","0","1","00","01","10","11","000","001","010","011","100","101","110","111","0000","0001","0010","0011","0100"
]
1
431 / 302 / 89
Регистрация: 03.12.2015
Сообщений: 738
17.04.2016, 00:28 3
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Haskell
1
2
3
4
bits 0 = [""]
bits n = [b:bs | b <- ['0', '1'], bs <- bits (n-1) ]
 
make = concatMap bits [0..]
> take 20 $ make
["","0","1","00","01","10","11","000","001","010","011","100","101","110","111"," 0000","0001","0010","0011","0100"]
2
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,639
Записей в блоге: 13
17.04.2016, 08:29 4
vrm2, великолепно! Чувствовал "печенкой", что должно быть подобное решение...
0
431 / 302 / 89
Регистрация: 03.12.2015
Сообщений: 738
17.04.2016, 13:02 5
Можно еще "улучшить" функцию bits, но код станет менее очевидным

Haskell
1
2
bits n = replicateM n "01"
make = concatMap bits [0..]
И если объединить, то:

Haskell
1
make = concat [replicateM n "01" | n <- [0..]]
3
17.04.2016, 13:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2016, 13:02
Помогаю со студенческими работами здесь

Связный список (Используя структуру описания даты, построить связный список студентов, сформированный в алфавитном порядке)
Здраствуйте! Помогите пожалуйста найти косяк. Выводится только первая строчка из списка студентов....

Дан произвольный список чисел. Построить список чисел, в два раза больших
Дан произвольный список чисел. Построить список чисел, в два раза больших

Построить список
Дано задание Построить список , исключить первые и n элементы , расположенные после 1. первого...

Построить список
Построить список l3, нечетные элементы которого содержат соответствующие нечетные элементы списка...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru