Refactor elisp/anagram/anagrams-for

Reformat.

Use push macro over low-level list-manipulation.
This commit is contained in:
dwrz
2019-02-05 02:29:37 +00:00
parent 7ab5ac1638
commit bd7d8a2ccb
+6 -8
View File
@@ -29,18 +29,16 @@ CHAR-COUNT and COMPARISON-CHAR-COUNT should be alists in (character . count) for
(setq are-equal nil))
(setq are-equal nil)))))
(defun anagrams-for(word anagrams)
(defun anagrams-for (word anagrams)
"Return all elements of ANAGRAMS which are anagrams for WORD.
Case insensitive."
(let ((candidates ())
(word-char-count (get-char-count (downcase word))))
(dolist (candidate anagrams candidates)
(if (and
(not (string-equal word candidate))
(equal (length word) (length candidate))
(equal-char-count word-char-count (get-char-count (downcase candidate))))
(if (> (length candidates) 0)
(add-to-list 'candidates candidate t)
(setq candidates (cons candidate nil)))))))
(when (and (not (string-equal word candidate))
(= (length word) (length candidate))
(equal-char-count word-char-count (get-char-count (downcase candidate))))
(push candidate candidates)))
(reverse candidates)))
;;; anagram.el ends here