* Luke Palmer <[email protected]> [2009-01-03 18:46:50 -0700]: > 2009/1/3 Xie Hanjian <[email protected]> > > > 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). 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 > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe -- jan=callcc{|jan|jan};jan.call(jan)
pgpBNyEg1SLvQ.pgp
Description: PGP signature
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
