2009/1/3 Xie Hanjian <[email protected]>

> * 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).


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
programming, ..."

Luke


>
> 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)
>
> _______________________________________________
> Haskell-Cafe mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to