Sample program

Danny Jared Epstein dje at
Thu Apr 2 19:35:15 UTC 1992

Danny Travis (danny at wrote:
> Bay sent me the following program to reverse a string of characters:
> _AddSlotsIfAbsent: ( | danny = () | )
> danny _Define: ( |
>     parent* = traits oddball.
>     reverse: str = ( | rev <- '' |
>         str do: [ | :c | rev: c, rev ].
>         rev ).
> | )

The first line adds a slot called "danny" to the lobby.  The receiver
is "implicit self" and self is the lobby at the prompt.  Since there
is no asterisk on the slot name, the "reverse:" method inside "danny"
will not be inherited by the lobby.  Therefore, you must explicitly
ask for the "reverse:" method in "danny":

  danny reverse: 'backwards'

This is why you got a message not understood error: you sent the
message to the lobby (probably implicitly).  Of course, the reverse
method should probably have the string as a receiver rather than an
argument - Bay's code was meant to be non-intrusive.

The problem with using list methods I don't understand.  Details might

Good to see someone using SELF...

Danny Epstein          grad(ual) student at Carleton U, Ottawa Canada
dje at    Smalltalker and occasional SELFer.
80r2.5 > 80r4 > V/Win > V/Mac > V/286 > V/DOS > C = 0

More information about the Self-interest mailing list