powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Prolog: помогите разобрать список на 3 подсписка
2 сообщений из 2, страница 1 из 1
Prolog: помогите разобрать список на 3 подсписка
    #36681655
romkoll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите с задачей.
Есть список: [a, 1, !, b, 2, @, c, 3, #, d, 4, $, ....]
Нужно получить 3 списка: [a, b, c, d, ...], [1, 2, 3, 4, ...], [!, @, #, $, ...]

Преподаватель сказал, что решается 5ю строками. Сам никак додумать не могу.

Есть в мыслях один алгоритм: голову списка добавлять в список 1, потом от того, что осталось, голову - в список 2, и потом от того, что осталось, голову - в список 3. И так повторять пока список не закончится. Преподаватель грит, что можно так, но есть алгоритм еще проще.
...
Рейтинг: 0 / 0
Prolog: помогите разобрать список на 3 подсписка
    #36681688
romkoll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На SWI так

Код: plaintext
1.
2.
3.
p([],[],[],[]).
p([H|Tail],[H|A],B,C):-char_type(H,alpha),!,p(Tail,A,B,C).
p([H|Tail],A,[H|B],C):-number(H),!,p(Tail,A,B,C).
p([H|Tail],A,B,[H|C]):-p(Tail,A,B,C).

?- p([a, 1, !, b, 2, @, c, 3, #, d, 4, $],A,B,C).
A = [a, b, c, d],
B = [1, 2, 3, 4],
C = [!, @, #, $].
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Prolog: помогите разобрать список на 3 подсписка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]