User Tools

Site Tools


at:tutorial:basic

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
at:tutorial:basic [2011/05/23 13:36] tvcutsemat:tutorial:basic [2020/02/09 16:48] – * elisag
Line 1: Line 1:
- 
 ====== Functional and Imperative Programming ====== ====== Functional and Imperative Programming ======
    
Line 251: Line 250:
 AmbientTalk borrows its block syntax from languages like Smalltalk and Self, where the role of the curly braces is played by square brackets, i.e. ''[ args | body ]''. In AmbientTalk, the ''<parlist>'' is only used to denote parameters to the block, not also for temporary variables as in Smalltalk. AmbientTalk borrows its block syntax from languages like Smalltalk and Self, where the role of the curly braces is played by square brackets, i.e. ''[ args | body ]''. In AmbientTalk, the ''<parlist>'' is only used to denote parameters to the block, not also for temporary variables as in Smalltalk.
 </note> </note>
 +
  
  
Line 289: Line 289:
 </code> </code>
  
 +<note important>
 +Be careful when nesting calls to keyworded functions: a call of the form ''foo: foo: 1 bar: 2 bar: 3'' is parsed as ''foo: (foo: 1 bar: 2 bar: 3)'', not as ''foo: (foo: 1 bar: 2) bar: 3''. It is recommended to always explicitly parenthesize nested keyworded function calls.
 +</note>
  
 ===== Native Data Types ===== ===== Native Data Types =====
  
 The basic data types in AmbientTalk are numbers (i.e. integers), fractions (i.e. double precision floating point numbers), text (i.e. strings), tables (i.e. arrays) and booleans. In fact, instances of these data types are nothing but objects and as such, they respond to a variety of native methods. Objects will be the subject of the next chapter of the tutorial. This section explains the basic data types and includes some examples how to manipulate them. The complete list of methods can be found in the language reference. The basic data types in AmbientTalk are numbers (i.e. integers), fractions (i.e. double precision floating point numbers), text (i.e. strings), tables (i.e. arrays) and booleans. In fact, instances of these data types are nothing but objects and as such, they respond to a variety of native methods. Objects will be the subject of the next chapter of the tutorial. This section explains the basic data types and includes some examples how to manipulate them. The complete list of methods can be found in the language reference.
 +
 +
  
 ==== Numerical data types ==== ==== Numerical data types ====
Line 325: Line 330:
 Numbers also support some useful iterator methods such as: Numbers also support some useful iterator methods such as:
 <code> <code>
->6.to: 0 step: 2 do: { |i| system.println(i) }+>1.to: 5 do: { |i| system.println(i)} 
 +
 +
 +
 +
 +
 +>1.to: 5 step: 2 do: { |i| system.println(i)} 
 +
 +
 +
 +>6.downTo: 0 step: 2 do: { |i| system.println(i) }
 6 6
 4 4
 2 2
 +0
 >>nil  >>nil 
 >3.doTimes: { |i| system.println(i) } >3.doTimes: { |i| system.println(i) }
Line 435: Line 451:
 ===== Control Flow Constructs ===== ===== Control Flow Constructs =====
  
-Control flow constructs are defined in the lexical root of AmbientTalk. The lexical root is an object containing globally visible native methods (i.e. it is the top-level environment). We have already seen in the previous sections examples of use of the foreach and if/then structures. A list of traditional control flow structures defined in AmbientTalk is shown below:+Control flow constructs are defined in the "lexical root". The lexical root is an object containing globally visible native methods (i.e. it is the top-level environment). We have already seen in the previous sections examples of use of the foreach and ''if:then:'' control structures. A list of traditional control flow structures defined in AmbientTalk is shown below:
 <code> <code>
 if: booleanCondition then: consequentClosure if: booleanCondition then: consequentClosure
at/tutorial/basic.txt · Last modified: 2020/02/09 22:05 by elisag