printf

何の役に立つのか分からないけどメモ

user=> (printf "%s" "asdf")
asdfnil
user=> (printf "%s" ["asdf"])
["asdf"]nil

これを踏まえて
Google グループ

(def s"(def s%s)(printf s(pr-str s))")(printf s(pr-str s))

ダブルクォートをエスケープする為にpr-strが使われてるけど

(def s["(def s%s)(printf(s 0)s)"])(printf(s 0)s)

と短かくできました。投稿してみたけど承認されるまで表示されないのか。


おまけで文字列使わないやつ (長いので適当に改行)

(pr
 ((fn [l]
   (list (quote pr) (list (list (quote fn) [(quote l)] l) (list (quote quote) l))))
  (quote
   (list (quote pr) (list (list (quote fn) [(quote l)] l) (list (quote quote) l))))))

The Quine Pageにあった奴にprとか付っこんだだけなのに酷く混乱した…