在 1.4 和最新 master 版本上
user> (defn ten [] 10)
'user/ten
user> (doall (pmap #(with-redefs (ten (fn [] %))) (range 20 100)))
(20 21 22 23 24 25 34 27 28 29 30 31 32 33 34 35 36 37 38 39 39 35 42 43 44 45 48 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 79 87 88 89 90 91 92 93 94 95 97 92 98 99)
user> (ten)
79
不确定这算不算一个bug,但文档中没有提到并发安全,而且我预期在任意 (任意交错) 的 with-redefs 调用序列之后,原始值总是会恢复。