Agreed - there are always tradeoffs.  Another common example is that pretty
well any language that uses IEEE floating point is also breaking
referential transparency in the interest of pragmatism:

user=> (= 0.3 (+ 0.1 0.2))

false

user=> (= (bigdec 0.3) (+ (bigdec 0.1) (bigdec 0.2)))

true

- Korny
On 9 Feb 2014 01:00, "John Mastro" <john.b.mas...@gmail.com> wrote:

> To add just one more thing to this: Referential transparency is clearly
> valuable, but it's not the *only* valuable property a function or system
> might
> have. There are always tradeoffs to be made. Clojure has made different
> tradeoffs than you expected, or would yourself have made, but that doesn't
> /a priori/ mean they're wrong.
>
> - John
>
> John Mastro <john.b.mas...@gmail.com> wrote:
> > Hi Andy,
> >
> > Andy C <andy.coolw...@gmail.com> wrote:
> >>
> >>
> >>> user> (= s1 s2)
> >>> true
> >>> user> (= (seq s1) (seq s2))
> >>> false
> >>
> >>
> >> Thx. If a=b  then f(a) must = f(b). Something is broken here.
> >
> > If a seq is a sequential view of a thing, and a set is an unordered
> thing, then
> > it does not seem shocking to me that multiple sequential views of a
> given set,
> > with different orderings, are possible.
> >
> > This may not be the only way to do things; and it may not be the way
> other
> > languages do it; and it may not match your preference. But I think it's
> clearly
> > wrong to say that it's internally inconsistent or "broken".
> >
> > It's perhaps hard to say this without sounding condescending, but rather
> than
> > seeking to identify all the ways in which Clojure isn't Haskell, it
> might be
> > more useful to pursue an understanding of Clojure (including its
> > definitely-not-nonexistent flaws!) on its own terms.
> >
> > - John
>
> --
> 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.

Reply via email to