I'm confused by the following code.
Could someone explain to me why the def-ed partial has different behavior
to the letted one?
This is especially confusing to me since the #() special form one works as
I expect.

##
Advertising

(def sum-partial-def (partial reduce +))
(let [sum-partial (partial reduce +)
sum-# #(reduce + %1)
nums [1 2 3 4]]
[(sum-partial-def nums)
(reduce + nums)
(sum-# nums)
(sum-partial nums)]) ;; => [10 10 10 10]
(with-redefs [+ (fn [a b]
(.add (.add (BigInteger. (str a))
(BigInteger. (str b)))
(BigInteger/ONE)))]
(let [sum-partial (partial reduce +)
sum-# #(reduce + %1)
nums [1 2 3 4]]
[(sum-partial-def nums)
(reduce + nums)
(sum-# nums)
(sum-partial nums)])) ;; => [10 13 13 13]
Thanks,
Matt
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.