2009/1/3 Xie Hanjian <jan.h.xie@gmail.com>
* Luke Palmer <lrpalmer@gmail.com> [2009-01-03 18:46:50 -0700]:
This is true in Haskell, but may not true in Scheme (I guess also false
> 2009/1/3 Xie Hanjian <jan.h.xie@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. :-)
in Lisp).
In DrScheme:
>(eq? (cons 1 2) (cons 1 2))
#f
>(equal? (cons 1 2) (cons 1 2))
#t
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?
Thanks
Jan
>
> Luke
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
--
jan=callcc{|jan|jan};jan.call(jan)
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe