blob: 78a97f10abb026fd126b759c6a0765c36afdfc39 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
;;; 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 (allergen-list n) item))
(provide 'allergies)
;;; allergies.el ends here
|