Re: with-redefs vs. constant folding

2013-08-14 Thread Chas Emerick
No; functions with :inline-* metadata (go look at the source for +, for 
example) are...inlined, thus eliminating var lookups, and any effect of 
binding, with-redefs, etc.  The workaround for this is to call through 
the var:


user=> (with-redefs [+ list] (#'+ 1 2))
(1 2)

Cheers,

- Chas

On 08/14/2013 03:50 PM, Ben Wolfson wrote:

Is this a bug?

user> (with-redefs [list +] (list 1 2)) ;; expected: 3
3 ;; huzzah

user> (with-redefs [+ list] (+ 1 2)) ;; expected: (1 2)
3 ;; blast!



--
Ben Wolfson
"Human kind has used its intelligence to vary the flavour of drinks, 
which may be sweet, aromatic, fermented or spirit-based. ... Family 
and social life also offer numerous other occasions to consume drinks 
for pleasure." [Larousse, "Drink" entry]


--
--
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/groups/opt_out.


--
--
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/groups/opt_out.


with-redefs vs. constant folding

2013-08-14 Thread Ben Wolfson
Is this a bug?

user> (with-redefs [list +] (list 1 2)) ;; expected: 3
3 ;; huzzah

user> (with-redefs [+ list] (+ 1 2)) ;; expected: (1 2)
3 ;; blast!



-- 
Ben Wolfson
"Human kind has used its intelligence to vary the flavour of drinks, which
may be sweet, aromatic, fermented or spirit-based. ... Family and social
life also offer numerous other occasions to consume drinks for pleasure."
[Larousse, "Drink" entry]

-- 
-- 
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/groups/opt_out.