ClojureでQuine書いた
Lispだからクオートで簡単にできるんだけど、そこを堪えて書いた結果。
(use (quote clojure.walk)) (let [s1 (quote (0 (1 2))) s2 (quote (3 [4 (1 10) 5 (1 11) 6 (1 12)] (7 (8 6 4) (8 (9 6 4 5 6) 5)))) k (quote [use quote clojure.walk let s1 s2 k prn postwalk-replace conj])] (prn (postwalk-replace k s1) (postwalk-replace (conj k s1 s2 k) s2)))
久し振りに書いてて楽しいQuineだった。
ちなみいクオートを使うとこうなる。
((fn [x] (prn (list x (list (quote quote) x)))) (quote (fn [x] (prn (list x (list (quote quote) x))))))
これじゃあ面白くないんだよなぁ。