Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 04.09.2016
Сообщений: 4

Преобразовать список: элементы, являющиеся атомами перенести в его начало, а остальные – в конец

04.09.2016, 13:57. Показов 1466. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста.
Преобразовать список по следующему правилу:
Элементы списка, являющиеся атомами перенести в его начало, а остальные – в конец
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.09.2016, 13:57
Ответы с готовыми решениями:

Переместить положительные числа в начало списка, расположив их по возрастанию. Остальные - в конец
4. Преобразовать список по следующему правилу: Элементы списка, являющиеся положительными числами перенести в его начало, расположив их...

Преобразовать массив Х по следующему правилу: все отрицательные элементы массива Х перенести в его начало, а все остальные в конец
Помогите решить,срочно надо Задание: Организовать ручное заполнение целочисленного массива Х, размерностью 10. Преобразовать массив Х по...

Все отрицательные элементы массива перенести в его начало, а все остальные в его конец
Задана последовательность из N целых чисел. Все отрицательные элементы массива перенести в его начало, а все остальные в его конец

8
Эксперт 1С
 Аватар для Tklwegsd
845 / 608 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
04.09.2016, 14:34
Списки имеют многоуровневую структуру
Задача для Haskell не может быть сформулирована таким образом.
0
0 / 0 / 0
Регистрация: 04.09.2016
Сообщений: 4
04.09.2016, 14:41  [ТС]
Скопировала задание точь в точь. Её еще и на scheme нужно сделать. Может хоть как-то можно ее реализовать?
0
Эксперт 1С
 Аватар для Tklwegsd
845 / 608 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
04.09.2016, 17:18
Как то можно. Например вот так:
Haskell
1
2
3
4
5
6
7
8
data ElementOfList a = Atom a | Other a deriving Show
 
isAtom :: ElementOfList a -> Bool
isAtom (Atom a) = True
isAtom  _       = False
 
solve :: [ElementOfList a] -> [ElementOfList a]
solve list = filter isAtom list ++ filter (not . isAtom) list
Устроит?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38171 / 21106 / 4307
Регистрация: 12.02.2012
Сообщений: 34,699
Записей в блоге: 14
04.09.2016, 17:44
КатеринаИванова, ты уверена, что это нужно на Haskell? Может, все-таки на Лиспе?
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,990
Записей в блоге: 32
04.09.2016, 18:51
Или как-то так
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import Data.Dynamic
import Data.Maybe
 
l :: [Dynamic]
l = [ toDyn "abc"
    , toDyn [toDyn (1::Int), toDyn ("abc"), toDyn ()]
    , toDyn (7 :: Int)
    , toDyn (pi :: Double)
    , toDyn [toDyn (2::Int), toDyn ("def"), toDyn ()]
    , toDyn [(1::Int)..5]
    ]
 
isAtom :: Dynamic -> Bool
isAtom dyn = maybe True (const False) (fromDynamic dyn :: Maybe [Dynamic])
 
solve :: [Dynamic] -> [Dynamic]
solve l = filter isAtom l ++ filter (not . isAtom) l
 
main = do
    print l
    print $ solve l
Атомом считается все, что не является списком динамиков
1
0 / 0 / 0
Регистрация: 04.09.2016
Сообщений: 4
04.09.2016, 18:55  [ТС]
Мне нужно и на Haskell, и на Scheme. (всем огромное спасибо за ответы).
Может кто еще на Scheme поможет? Заранее благодарна!
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38171 / 21106 / 4307
Регистрация: 12.02.2012
Сообщений: 34,699
Записей в блоге: 14
04.09.2016, 20:06
Цитата Сообщение от КатеринаИванова Посмотреть сообщение
Может кто еще на Scheme поможет? Заранее благодарна!
- для этого задай вопрос в теме "Лисп"

Добавлено через 17 минут
Вот на Scheme: решение
1
0 / 0 / 0
Регистрация: 04.09.2016
Сообщений: 4
07.09.2016, 07:20  [ТС]
всем огромное спасибо)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.09.2016, 07:20
Помогаю со студенческими работами здесь

Все отрицательные элементы массива X перенести в его начало, а все остальные — в конец
Нужна помощь в доработке программы. Delphi формы: После того как я ввел числа в колонках нажимаю пуск и ничего не происходит, препод...

Все отрицательные элементы массива X перенести в его начало, а все остальные - в конец
преобразовать массив x по следующему правилу(воспользовавшись массивом y как вспомогательным): Все отрицательные элементы массива x...

Все отрицательные элементы массива перенести в его начало, а все остальные - в конец
преобразовать массив x по следующему правилу(воспользовавшись массивом y как вспомогательным): Все отрицательные элементы массива x...

Все отрицательные элементы массива X перенести в его начало, а все остальные — в конец
1) Дано натуральное n. Написать программу вычисления значений (1/(1*2))+(1/(2*3))+...+(1/((n-1)*1)) где n больше или равен 2. ...

Все отрицательные элементы массива X перенести в его начало, а все остальные — в конец
Все отрицательные элементы массива X перенести в его начало, а все остальные — в конец, сохраняя исходное взаимное расположение как среди...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru