Посмотрите split-by-one-space
в The Common Lisp Cookbook
(defun split-by-one-space (string)
"Returns a list of substrings of string
divided by ONE space each.
Note: Two consecutive spaces will be seen as
if there were an empty string between them."
(loop for i = 0 then (1+ j)
as j = (position #\Space string :start i)
collect (subseq string i j)
while j))
Теперь вы могли бы просто использовать хэш-таблицу с equal
в качестве теста и, возможно, использовать mapc
в списке, чтобы получить ключ и частоты хэш. Тогда у вас есть то, что вы хотели в хеш-таблице.
В качестве альтернативы (и более медленным) было бы считать первый элемент с (count (car lst) lst :test #'equal)
и обработать остаток списка (remove (car lst) lst :test #'equal)
. Когда отфильтрованный список пуст, все готово.
Downvoted, потому что не было попытки решить проблему. –
(DEFUN происходят() (Princ "Введите список:") (SETQ count1 (чтение строки)) (PRINC (COUNT # \ в count1))) – thekindlyman
C'mon ребята помогают bruda из. – thekindlyman