Hello list,

I'm starting for a couple of days with smalltalk/squeak - maybe it's not my
last post :)

I like to construct a flat array, but get a nested array:

#(1 2 (1 + 3)) "unexpected result: #(1 2 #(1 #+ 3)) "

Why squeak means, that "(1 + 3)" is an array and not 4?

The syntax for an array literal is defined via"#(" - isn't it?

salute
Thomas


Is because the #(..) array is a literal build at compile time.
If you want a flat array use the {} syntax.

But this is specific to Squeak. You will not find it in VW for example.

Rather prefer the Array class>>#with:with:with:


The #() syntax is for a regular array but for a literal array you want {}
(curly braces)

Try this: {1. 2. 1 + 3.}

Hope that helps,

Ron Teitelbaum


Ah, thanks a lot, but this provokes my next question:
How can I use floats like 3.14 in an array literal?

{3.14 2.} "{3.14 Period or right brace expected ->2.}"

PS: Is there anywhere in the net a *COMPLETE AND COMPACT* list
of all "cryptical" syntax characteristics for smalltalk/squeak?

salute
Thomas


try this:

{3.14. 2}

Math


Thanks!
I recapitulate:
In {} Array literals I have to use a period sign between all items.
In #(..) array literal which build at compile time, I can never use
expressions.
Right?

salute
Thomas


Mathieu,
No,
With the brace syntax you separate STATEMENTS (hence the period) with a whitespace (tab newline etc... just as one

would with arrays). Expressions do not require a period.

So, { (3.14 asFloat). 2.} or { (3.14). 2. }

and just as well { (Stream on: ( String new:1204)). 'or whatever you can get away with...' .} (notice the periods
inside the literal string)

Olivier


Hahah! That's pretty funny. I hadn't thought about {3.14 2.} but I went
and tried it and guess what, it worked! My guess is the space is
importation.

I know that there are a number of tutorials,
http://wiki.squeak.org/squeak/792 if you find something good feel free to
let us know.

Ron Teitelbaum


Page Information

  • 1 year ago [history]
  • View page source
  • You're not logged in
  • No tags yet learn more

Wiki Information

Recent PBwiki Blog Posts