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 [2009/06/05 15:32] – added tvcutsemat:tutorial:basic [2011/05/23 13:43] tvcutsem
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>
 +
 +
  
 ===== Keywords ===== ===== Keywords =====
Line 282: Line 283:
 </code> </code>
  
-However, it is impossible to directly call or define a keyworded function in canonical style.+It is also possible to invoke keyworded functions using the canonical function application syntax: 
 + 
 +<code> 
 +foo:bar:(1,2) 
 +</code> 
 + 
 +<note important> 
 +Be careful when nesting calls to keyworded functions: 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 =====
Line 429: Line 438:
 ===== 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