Это немного сложнее, чем следует из названия, но я не мог конденсировать его одним предложением.Удалите все повторяющиеся списки в списке. Lisp
Я использую Clisp и в настоящее время имею список списков. Внешний список произвольно длинный, а внутренние списки - 4 целых числа. Вот пример того, что у меня может быть.
((2 1 1 0) (1 1 0 0) (1 0 0 1) (1 1 0 0) (1 0 1 0) (1 0 0 0))
Теперь каждый внутренний список состоит из 2 частей, первый элемент - «множитель». И последние 3 элемента - это просто значения, которые хранятся в списке. Таким образом, в некотором смысле (10 1 1 0) совпадает с (5 1 1 0) (5 1 1 0).
Мне нужна функция, которая может конденсировать этот список вниз, так что нет 2 списков, содержащих те же последние 3 элемента. Но только один список для каждого уникального последнего 3 элемента и значение в первом пространстве, которое «сколько» этого списка есть. Если это имеет смысл ...
Так что
((2 1 1 0) (1 1 0 0) (1 0 0 1) (1 1 0 0) (1 0 1 0) (1 0 0 0))
; ^ ^
стал бы этот
((2 1 1 0) (2 1 0 0) (1 0 0 1) (1 0 1 0) (1 0 0 0))
; ^
Я нахожусь в недоумении, в каком направлении принять эту атм. И хотел бы несколько советов о том, как я мог бы лучше справиться с этой
Common Lisp или Scheme? – uselpa
Первое, что я сделал бы: написать версию на английском языке. Когда это выглядит хорошо, добавьте в него круглые скобки и сделайте это ... Stackoverflow предназначен для реальных проблем программирования (лучше всего с кодом и описанием проблемы), а не для поиска того, кто разрабатывает и реализует ваши алгоритмы ... –
@LePetitPrince Clisp – sam