Хорошо, я хочу подсчитать, сколько раз каждый [номер] появлялся в списке, используя Схему.
Как я могу это сделать? Я также хотел бы сохранить счетчик заданного числа и восстановить новый список.
Например, у меня есть следующий список ((1 2)(2 5)(5 7)(7 8)(6 8)(4 6)(3 4)(1 3)(4 8))
Я думал сначала сгладить список, а затем установить счетчик для каждого числа (не знаю, как это сделать). А затем восстановить новый список, соответствующий исходному номеру. (это может быть сложно? Мне нужно хранить временную переменную?)
Скажем, из этого примера число 1 появилось дважды, число 2 появилось дважды, число 3 дважды и т. Д., Поэтому я хотел бы воссоздать новый список примерно так:
(1 2) (2 2) (3 2) (4 3) (5 2) (7 2) (6 2) (8 3)
Есть идеи, как мне этого добиться?
Обновление:
Я думал реализовать вспомогательный счетчик приращений как-то так?
(define inc-counter
(let ((counter 0))
(lambda () (set! counter (+ counter 1)))))