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:
Math
On Mar 4, 2007, at 10:47 PM, Thomas Fischer wrote:
#(1 2 (1 + 3)) "unexpected result: #(1 2 #(1 #+ 3)) "
Why squeak means, that "(1 + 3)" is an array and not 4?
Hi Thomas,
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
From: Thomas Fischer
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 -- View this message in context: http://www.nabble.com/array-literal---a- misunderstanding--tf3344098.html#a9300859 Sent from the Squeak - Beginners mailing list archive at Nabble.com.
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Hi Ron & Mathieu & list
Try this: {1. 2. 1 + 3.}
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
Hi Mathieu,
try this: {3.14. 2}
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.
Hi Mathieu,
try this: {3.14. 2}
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
-- View this message in context: http://www.nabble.com/array-literal---a-misunderstanding--tf3344098.html#a93... Sent from the Squeak - Beginners mailing list archive at Nabble.com.
Hi Thomas,
The Terse guide to Squeak at http://wiki.squeak.org/squeak/5699 may help.
Zulq.
Thomas Fischer wrote:
PS: Is there anywhere in the net a *COMPLETE AND COMPACT* list of all "cryptical" syntax characteristics for smalltalk/squeak?
Hi,
The Terse guide to Squeak at http://wiki.squeak.org/squeak/5699 may help.
Thanks for this Link.
Arrrgh! There is no curly brace in the "Terse guide"
salute Thomas
On Mar 5, 2007, at 18:48 , Thomas Fischer wrote:
Hi,
The Terse guide to Squeak at http://wiki.squeak.org/squeak/5699 may help.
Thanks for this Link.
Arrrgh! There is no curly brace in the "Terse guide"
It's a wiki. Add it.
- Bert -
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
-----Original Message----- From: beginners-bounces@lists.squeakfoundation.org [mailto:beginners- bounces@lists.squeakfoundation.org] On Behalf Of Thomas Fischer Sent: Monday, March 05, 2007 3:08 AM To: beginners@lists.squeakfoundation.org Subject: [Newbies] RE: array literal - a misunderstanding?
Hi Ron & Mathieu & list
Try this: {1. 2. 1 + 3.}
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 -- View this message in context: http://www.nabble.com/array-literal---a- misunderstanding--tf3344098.html#a9306975 Sent from the Squeak - Beginners mailing list archive at Nabble.com.
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
beginners@lists.squeakfoundation.org