(def atom?
(fn [a]
(not (seq? a))))
(def null?
(fn [a]
(or
(nil? a)
(= () a))))
(def lat?
(fn [l]
(cond
(null? l) true
(and (seq? l)
(atom? (first l)))
(lat? (rest l))
true false)))
(println (lat? '(a b c)))
(println (lat? 'a))
(def member?
(fn [a lat]
(cond
(null? lat) false
true (or
(= (first lat) a)
(member? a (rest lat)))) ))
(println (member? 'a '(a b c)))
(println (member? 'd '(a b c)))
KGRlZiBhdG9tPwogIChmbiBbYV0KICAgIChub3QgKHNlcT8gYSkpKSkKICAgIAooZGVmIG51bGw/CiAgKGZuIFthXQogICAgKG9yCiAgICAgIChuaWw/IGEpCiAgICAgICg9ICgpIGEpKSkpCgooZGVmIGxhdD8KICAoZm4gW2xdIAogICAgKGNvbmQKICAgICAgKG51bGw/IGwpIHRydWUgCiAgICAgIChhbmQgKHNlcT8gbCkKICAgICAgICAgICAoYXRvbT8gKGZpcnN0IGwpKSkKICAgICAgICAgICAgIChsYXQ/IChyZXN0IGwpKQogICAgICB0cnVlIGZhbHNlKSkpCgoocHJpbnRsbiAobGF0PyAnKGEgYiBjKSkpCihwcmludGxuIChsYXQ/ICdhKSkKCgooZGVmIG1lbWJlcj8KICAoZm4gW2EgbGF0XQogICAgKGNvbmQKICAgICAgKG51bGw/IGxhdCkgZmFsc2UKICAgICAgdHJ1ZSAob3IKICAgICAgICAoPSAoZmlyc3QgbGF0KSBhKQogICAgICAgIChtZW1iZXI/IGEgKHJlc3QgbGF0KSkpKSApKQoKKHByaW50bG4gKG1lbWJlcj8gJ2EgJyhhIGIgYykpKQoocHJpbnRsbiAobWVtYmVyPyAnZCAnKGEgYiBjKSkpCgoKCg==