[Haskell-cafe] How to check object's identity?
lrpalmer at gmail.com
Sat Jan 3 23:17:09 EST 2009
2009/1/3 Xie Hanjian <jan.h.xie at gmail.com>
> * Luke Palmer <lrpalmer at gmail.com> [2009-01-03 18:46:50 -0700]:
> > 2009/1/3 Xie Hanjian <jan.h.xie at gmail.com>
> > > Hi,
> > >
> > > I tried this in ghci:
> > > >Prelude> 1:2: == 1:2:
> > > True
> > >
> > > Does this mean (:) return the same object on same input,
> > Also, in functional programming, *every* function returns the same output
> > for the same input. That's part of the definition of function. :-)
> This is true in Haskell, but may not true in Scheme (I guess also false
> in Lisp).
I, like many arrogant Haskellers, reject Scheme and other such impure
languages as "functional". At least until I turn on my brain.
So, revise the beginning of my statement to "Also, in *pure* functional
> In DrScheme:
> >(eq? (cons 1 2) (cons 1 2))
> >(equal? (cons 1 2) (cons 1 2))
> Although equal? treats the two as the *same*, they're different lists
> because if we modify one (e.g by set-car!) the other won't be affected.
> So here comes another question: when we say a function always give the
> same output for the same input, what the *same* means here? ídentity
> or equality?
> > Luke
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe