Refactor elisp/anagram/anagrams-for
Reformat. Use push macro over low-level list-manipulation.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user