[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] Mutable Pairs



On Wednesday, June 16, 2010, at 9:53 AM, "Brian Harvey" <bh at
cs.berkeley.edu> wrote:

> P.S.  A little off topic but I can't resist: If you look at the
> programming language we offer to actual kids, they're /full/ of
> mutation and little else.  That's where you guys should be battling.
> (And yes, I know, and appreciate, that the PLT people /are/ fighting
> that battle too.)  That's why, wearing my other hat, I'm working to
> <a href="http://byob.berkeley.edu";>add lambda</a> to <a
> href="http://scratch.mit.edu";>Scratch</a>.  :-)

The trailer video of "BYOB 2.99alpha — Build Your Own Blocks" at
http://byob.berkeley.edu/BYOB3-Trailer.mov (for the QuickTime movie)
was quite fascinating.  This is the first time that I have seen an
integration of functional programming with Squeak-style
message-passing.  At first, I thought that the BYOB blocks looked very
similar to the supplies (graphical building blocks) for Squeak, but
the ability to carry out functional programming, in which all data are
first-class, in a Squeak-style message-passing environment was
something that I had not seen before.  In particular, I was impressed
with the example of the compose function, which takes two functions as
inputs, and maps them to another function as output, done in this
environment.

I wish that this technology had been available last June!  Back then,
I was having difficulty in trying to learn the message-passing
paradigm (some call it an "object-oriented" paradigm, but that is not
really very accurate, since what distinguishes it from other
programming languages is really the message-passing aspect) of Squeak,
and was forced to take a mental time-trip back to 1989, before
matriculating at college, in order to reset my mental continuation to
the state just before learning Scheme (this experience is described in
my blog entry "Paradigm Shift: Back to the Past, and No Small Talk
About Smalltalk" [2] at
http://dekudekuplex.wordpress.com/2009/08/25/paradigm-shift-back-to-the-past-and-no-small-talk-about-smalltalk/
).

(While I succeeded in overcoming the learning block and was able to
start learning Squeak, this effort had some noticeable side effects,
one of which was that my personality (editor preferences, food and
drink preferences, style of walking, single-tasking vs. multi-tasking
preferences, music preferences, etc.) also switched when I switched
mental continuations.  Currently, I switch mental continuations
between the June 2009 Scheme-continuation and the August 1989
Squeak-continuation, depending on which language I am using.  Had I
been able to use BYOB last year, I would not have had to switch mental
continuations, and would have been able to process learning both
Scheme and Squeak with a common mental continuation.  (Incidentally,
part of my fascination with Scheme comes from its feature of
first-class continations, which my own mental processes mirror--the
processes tend to save continuations, pass them as arguments to other
mental functions, and return to them later.  One programmer who used
to work with me on a project once remarked that I "think very similar
to a computer program"; in a way, I have a quasi-Scheme interpreter
(which prefers compiling mental code for functions to be run the
following day during my sleep) continuously running in my head.))

-- Benjamin L. Russell
--
[1] _BYOB 2.99alpha — Build Your Own Blocks._ Lifelong Kindergarten
Group at the MIT Media Lab and the Massachusetts Institute of
Technology. n.d. Web. 16 June 2010. <http://byob.berkeley.edu/>.

[2] Russell, Benjamin L. "Paradigm Shift: Back to the Past, and No
Small Talk About Smalltalk." _Monadically Speaking: Adventures in PLT
Wonderland._ Benjamin L. Russell, 25 Aug. 2009. Web. 16 June
2010. <http://dekudekuplex.wordpress.com/2009/08/25/paradigm-shift-back-to-the-past-and-no-small-talk-about-smalltalk/>.

_______________________________________________
Scheme-reports mailing list
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports