Clojure > Archives > 2010/05/06

2010/05/06 15:14:59 UTChchbaw
#
はじめまして!
#
わお!この挙動はしりませんでした。勉強になりますです!
2010/05/06 15:20:28 UTChchbaw
#
mem# で作ったシンボルを、
#
(defmacro bbb [x]
  (let [gmem (gensym "mem__")]
    `(let [~gmem (atom {})]
       (swap! ~gmem assoc :a ~x))))
#
(let*                                                                           
 [mem__4079 (clojure.core/atom {})]                                             
 (clojure.core/swap!                                                            
  mem__4079                                                                     
  clojure.core/assoc                                                            
  :a                                                                            
  (let*                                                                         
   [mem__4080 (clojure.core/atom {})]                                           
   (clojure.core/swap! mem__4080 clojure.core/assoc :a 1))))
#
のようなつもりでいままでつかっていました (^^;;
#
このあたりでしょうか http://www.mail-archive.com/clojure@googlegroups.com/msg13949.html
#
今までしらなかったです ^^;;
2010/05/06 16:07:45 UTCtnoborio
#
(-> 2 (#(* % %)))
#
という感じで()に入れれば可能ですね。
#
(macroexpand '(-> 2 (#(* % %))))
((fn* [p1__13453] (* p1__13453 p1__13453)) 2)
#
僕もmem#の挙動に戸惑いました。シンボル名が評価しても変わらないので。