Hi Stef,

following on from Sean, (+1000 for using ordinary quotes)

’string’ collection of characters => ’string’ sequence of characters
$a, Character space Two ways to create characters => $a, Character
space two ways to denote characters (or two ways to write characters; all
other explanations in this list are not capitalized; this shouldn't be
either)
exp1. exp2 expression separator => expr1. expr2 statement separator
; message cascade => expr doThis ; doThat   semicolon - message cascade
(c.f. exp1. exp2 expression separator)
^ expr caret - returns a result from a method => ^ expr caret - return a
result from a method (or, ParcPlace preference, answer a result from a
method, since we're sending messages here)

...
A unary message is one with no arguments. => A unary message has no
arguments. (c.f. A binary message takes only one argument ...)
...
Set new add: 4; add: 4 ; yourself ~> aSet => Set new add: 4; add: 4 ;
yourself ~> aSet(4)
Dictionary new at: #a put: 'Alpha' ; yourself a Dictionary => Dictionary
new at: #a put: 'Alpha' ; yourself a Dictionary(#a->'Alpha' )

and then in the Files and Stream section I would give two more examples of
exactly the same sequence that use the convenience APIs.  This is the
existing text:

work := FileSystem disk workingDirectory.
stream := (work / ’foo.txt’) writeStream.
stream nextPutAll: ’Hello World’.
stream close.
stream := (work / ’foo.txt’) readStream.
stream contents.                                     ~> 'Hello World'
stream close.

I would make it read

work := FileSystem disk workingDirectory.
stream := (work / ’foo.txt’) writeStream.
stream nextPutAll: ’Hello World’.
stream close.
stream := (work / ’foo.txt’) readStream.
stream contents.                                     ~> 'Hello World'
stream close.

or, more simply

work := FileSystem disk workingDirectory.
(work / ’foo.txt’) writeStreamDo: [ :fileStream | fileStream nextPutAll:
’Hello World’ ].
(work / ’foo.txt’) readStreamDo: [ :fileStream | fileStream contents]
                     ~> 'Hello World'

or, more simply still

work := FileSystem disk workingDirectory.
(work / ’foo.txt’) writeStreamDo: [ :fileStream | fileStream nextPutAll:
’Hello World’ ].
(work / ’foo.txt’) contents
                                            ~> 'Hello World'

or if you can't make it fit, just give the last version

Finally, this seems to have fallen off the end:
A simple, uniform and powerful model
Pharo has a simple dynamically-typed object model:

Perhaps shrink the picture of the browser.  You can save three lines by
writing
OrderedCollection new
add: 1;
add: 2;
add: 3.

as OrderedCollection new add: 1; add: 2; add: 3.
And another by writing 2=2 ifTrue: [ Error signal: ’Help’ ]. on one line.

HTH

On Fri, Apr 8, 2016 at 12:56 PM, stepharo <[email protected]> wrote:

> new cheatsheet for Pharo syntax.
> Any feedback is welcome
>
> Stef
>



-- 
_,,,^..^,,,_
best, Eliot

Reply via email to