;;; allergies.el --- Allergies Exercise (exercism) ;;; Commentary: ;;; Code: (require 'seq) (setq allergens '(eggs peanuts shellfish strawberries tomatoes chocolate pollen cats)) (defun allergen-list (n) (let* ((index 0) (pred (lambda (item) (let ((r (< 0 (logand (ash 1 index) n)))) (setq index (1+ index)) (when r item))))) (mapcar 'symbol-name (seq-filter pred allergens)))) (defun allergic-to-p (n item) (seq-contains-p (allergen-list n) item)) (provide 'allergies) ;;; allergies.el ends here