[plt-scheme] Functions as first class data types.
On Feb 14, 2009, at 8:21 PM, e wrote:
> wow, based on that link, I guess my answer to the "newbie lambda()
> (??????)" post wasn't that unique. Here's an excerpt that had to do
> with *why* (not how) the stop function was tied to the function
> returned from "server":
>
> "Not only CAN you return a function, the REASON you are in this case
> is so that its execution will be tied (bound) to the thread that was
> started. I am thinking this is an example of a "closure".
>
> I guess in OO, you'd make a server "instance", and it would have a
> "stop" command . . .. or you could "delete" it (in C++), which would
> call the "destructor" . . . or in Java, there's some what of an
> opportunity in "finalize()", but not a reliable one. In Python, I'm
> thinking you'd have a "stop", and it'd be obvious that construction
> and "stopping" aren't symmetric operations.
>
> Now that I've made this comparison, it seems like the argument you
> have for fp reduces from "you can't do this in OO" to, "you need
> more boilerplate and fanfare to do it in OO" (possibly a whole file,
> possibly two -- one for the header and one for the implementation,
> RAII semantics on the constructor, etc)."
From Alan Perlis:
Beware of the Turing tar-pit in which everything is possible but
nothing of interest is easy." --Alan Perlis, "Epigrams on
Programming" [1].
That is: in any Turing-complete language, you can "do anything you
want" (that is, you can do all the things you can do in the other
Turing-complete languages) . The question is not whether a particular
language can encode a particular style, but whether it does so in a
"nice" way. You can also distinguish languages on the basis of their
expressiveness--see papers by Felleisen.
John Clements
> On Sat, Feb 14, 2009 at 10:29 PM, Henk Boom <henk at henk.ca> wrote:
> 2009/2/14 Grant Rettke <grettke at acm.org>:
> > On Sat, Feb 14, 2009 at 6:24 PM, aditya shukla
> > <adityashukla1983 at gmail.com> wrote:
> >> Can someone please explain what's the use of having functions as
> first
> >> class data type in scheme .I am a little confused about functions
> having
> >> functions as their arguments .
> >
> > There are problems that you want to solve while programming where
> you
> > will find that first class functions are one good solution. In their
> > absence there are other good solutions, too.
>
> Other good solutions such as objects:
>
> http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html
>
> Henk
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2484 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20090217/a8608391/attachment.p7s>