I have prepared something on the wiki (not yet complete):

http://code.google.com/p/pharo/wiki/GettingStartedWorkspaces

I'm planning to move more of Torsten's text there. As of now it is in
Wiki markup, so it is easier to edit / discuss. Later on one could
convert that to in-workspace text automatically.

Matthias

On Thu, Nov 6, 2008 at 8:43 AM, Stéphane Ducasse
<[EMAIL PROTECTED]> wrote:
> sounds good!
> Can you give us the squeak version?
> Ideally it would be good to have
>
> Scriptloader install welcomeBeginnerWindow :)
>
> Stef
>
> On Nov 5, 2008, at 11:06 PM, Torsten Bergmann wrote:
>
>> What about a "Pharo/Smalltalk Beginners Workspace" with colored text and
>> some
>> interesting expressions to evaluate (or just hyperlink-click for a simple
>> doIt/printIt)
>>
>> This should start with simple expressions, unary, binary and keyword intro
>> up
>> to some high level code or cool demos (turtle graphics, ....).
>>
>> Ivan Tomek provided such a workspace (see
>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2000-April/013808.html)
>>  and
>> I once started to adapt it to Squeak (see below).
>>
>> Bye
>> Torsten
>>
>>
>>
>> -------------------------------------------------------------------------------------------
>> *************************************************************
>> * INTRODUCTION TO SMALLTALK IN x EASY STEPS
>> *************************************************************
>>
>> This workspace introduces some of the concepts of Smalltalk -
>> the language behind Pharo. It''s contents is executable and you
>> should try all our suggested exercices.
>> There is much more to Smalltalk and the references listed at the
>> end provide additional information.
>>
>> =================================
>> Part 1: Objects and messages
>> =================================
>>
>>
>> ---------------------------------------------------------------------------------------------------------
>> -- 1. EVERYTHING IN SMALLTALK IS AN OBJECT, AND ALL WORK IS DONE BY
>> --    SENDING MESSAGES TO
>> OBJECTS---------------------------------------------------------------------------------------------------------
>>
>> To send a message we just have to enter text representing the object
>> itself
>> (which is the receiver of the message) and after that the message we want
>> to send.
>>
>>  To execute the following examples,
>>  - select the colored code text using the left mouse button (as in a word
>>   processor)
>>  - we can execute the text and print the result by selecting ''print it''
>>   from the right mouse button <operate> menu
>>  - alternatively you can select the text and press ALT + p
>> "
>>
>> 3 negated.                      "receiver is small integer 3, the message
>> we send is
>>                                  ''negated'' "
>>
>> "The period is not necessary - it just preserves the color in this text
>> since
>> it marks the end of a Smalltalk statement.
>> Note that if we send a message the object always responds by either
>> returning a new object or by returning itself. In our example the object
>> 3 responds with a new object -3 when we send the message ''negated''.
>> When evaluating code using ''print it'' the responded object is printed.
>>
>> "
>>
>> "Now lets send a different message"
>> 3 squared.                      "receiver is 3 again - the message is now
>> squared"
>>
>> "Lets try some more examples"
>> ''abc'' asUppercase.    "receiver is string ''abc'' "
>>
>> ''HelloWorld'' reverse. "Lets reverse a string"
>>
>> 200 factorial.           "1 * 2 * 3 * 4 ... * 199 * 200 returns a large
>> number
>>                                which is no problem for Smalltalk"
>>
>> "Simple message send can be used to ask an object. Note that the response
>> is always an object"
>>
>> #(a b c) size.          "lets ask an array for its size"
>>
>> ''123456'' isAllDigits. "is the string composed entirely of digits"
>>
>> "Instead of printing the result using the print it we can also open an
>> inspector
>> window on the result. This is done"
>>
>>
>>
>> "Note that compared to other languages even mathematical functions
>> are handled by sending a message. instead of writing sin(x) we just have
>> to send the message #sin to a number"
>>
>> 1 sin.
>>
>> "Converting objects is also typically done by sending messages"
>>
>> 123 asString.           "you can convert an object to a string by sending
>> #asString"
>>
>> 12.33 asInteger.                "convert a float object into an integer
>> object"
>>
>> ''12.34'' asNumber.     "returns a number - here a float"
>>
>> "So the Smalltalk syntax simply is: Object always comes first (receiver),
>> message follows.
>>
>>
>> ---------------------------------------------------------------------------------------------------------
>> -- 2. THERE ARE EXACTLY THREE KIND OF MESSAGES: Unary, binary and keyword
>> messages
>>
>> ---------------------------------------------------------------------------------------------------------
>>
>> 2.1. Unary messages
>> ========================
>> We already know this type of message from the above examples. The message
>> we send to
>> an object is just a word, there are no arguments."
>>
>> 3 negated.                                      "We already know this "
>>
>> ''Hello World'' subStrings.     "This returns an array of substrings"
>>
>> "2.2. Binary messages
>> ========================
>> As the name implies we have two objects playing a role in this message
>> type - the receiver and
>> exactly one argument object. Each binary message is a binary selector,
>> constructed from one or two
>> characters followed by the argument object."
>>
>> 3 + 4.                          "send the message + to the receiver object
>> 3 with the argument 4 "
>>
>> "Take care: compared to other languages where both sides of such an
>> expression are treated equally
>> in Smalltalk the objects in a binary message are clearly separated into
>> the receiver of the message
>> (the object in front of the binary message selector) and the argument (the
>> object behind the message
>> selector). Note the difference:
>> "
>>
>> 3 + 4.0.                                "here we send the message + to an
>> integer with a float as argument object"
>>
>> 4.0 + 3.                                "here we send the message + to a
>> float with an integer as argument object"
>>
>> "Binary messages are typically used for arithmetic and comparing objects.
>> Some more examples: "
>>
>> 1 = 2.                          "we know it should return false"
>>
>> 2 * 3.                          "ohhh ... it''s so simple"
>>
>> 1 < 2.                          "The object 1 should tell us if it is
>> smaller than 2 (the argument)"
>>
>> ''Hello'', ''World''.           "Concatenating string is done by sending
>> the message , (comma) with another string
>>                                         as argument"
>>
>>
>> "----------------------------------------------------------------------------------------------------------
>>
>> ========================================
>> Part 2: Classes and their instances
>> ========================================
>>
>>
>> ---------------------------------------------------------------------------------------------------------
>> -- 1. AN OBJECT MAY HAVE PROPERTIES (state)
>>
>> ---------------------------------------------------------------------------------------------------------
>>
>>
>> ---------------------------------------------------------------------------------------------------------
>> -- 2. EVERY OBJECT IS AN INSTANCE OF A CLASS
>>
>> ---------------------------------------------------------------------------------------------------------
>>
>>
>> ---------------------------------------------------------------------------------------------------------
>> -- 3. A CLASS IS A TEMPLATE FOR CREATING ITS INSTANCES
>>
>> ---------------------------------------------------------------------------------------------------------
>> ...
>>
>>  Free Books on Smalltalk (available as PDF)
>>  http://www.iam.unibe.ch/~ducasse/FreeBooks.html
>>
>>
>>
>> --
>> "Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
>> Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to