at:tutorial:basic
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
at:tutorial:basic [2007/04/06 08:30] – * elisag | at:tutorial:basic [2007/04/06 09:00] – * elisag | ||
---|---|---|---|
Line 2: | Line 2: | ||
**IN PROGRESS: FIRST DRAFT!!** | **IN PROGRESS: FIRST DRAFT!!** | ||
- | - TODO: Adding Table splicing, | + | - Add quasi-quoting? |
</ | </ | ||
====== Functional and Imperative Programming ====== | ====== Functional and Imperative Programming ====== | ||
Line 46: | Line 46: | ||
Although there is no special constructor for definition of multidimensional tables, a table entry can contain another table. This is internally stored as a unidimensional table whose entries are other tables. | Although there is no special constructor for definition of multidimensional tables, a table entry can contain another table. This is internally stored as a unidimensional table whose entries are other tables. | ||
< | < | ||
- | > | + | > |
>> | >> | ||
- | > | + | > |
>>[1, 2, [" | >>[1, 2, [" | ||
> | > | ||
Line 61: | Line 61: | ||
</ | </ | ||
- | === Table Splicing === | + | ==== Table Splicing |
TODO! | TODO! | ||
Line 112: | Line 112: | ||
This example also illustrates how a function can be made private by means of lexical scope. Variables and functions defined locally to functions are only visible in the scope of the function where there were defined. Note that local //inner// function is only visible inside the //fac// function and its nested scopes. Thus, calling // | This example also illustrates how a function can be made private by means of lexical scope. Variables and functions defined locally to functions are only visible in the scope of the function where there were defined. Note that local //inner// function is only visible inside the //fac// function and its nested scopes. Thus, calling // | ||
- | === Variable-Length Argument Functions === | + | ==== Variable-Length Argument Functions |
You can create functions that take an arbitrary | You can create functions that take an arbitrary | ||
Line 275: | Line 275: | ||
==== Tables ==== | ==== Tables ==== | ||
- | TODO! | + | |
+ | We have already introduce how to define tables. Let us now focus on how to manipulate them with the native methods provided by the table object. | ||
+ | < | ||
+ | > | ||
+ | >>[1, 3] | ||
+ | > | ||
+ | >>[2, 3, 4] | ||
+ | >def vowels := [" | ||
+ | >> | ||
+ | > | ||
+ | >>5 | ||
+ | > | ||
+ | >>" | ||
+ | > | ||
+ | >>" | ||
+ | > | ||
+ | >> | ||
+ | > | ||
+ | >>" | ||
+ | > | ||
+ | >> | ||
+ | </ | ||
+ | |||
+ | Tables also support some useful iterator methods such as: | ||
+ | < | ||
+ | >def sum:= 0; | ||
+ | >>0 | ||
+ | > | ||
+ | >> | ||
+ | >sum | ||
+ | >>6 | ||
+ | >def sumNnum (@args) { | ||
+ | args.inject: | ||
+ | } | ||
+ | >>< | ||
+ | > | ||
+ | >>6 | ||
+ | </ | ||
==== Booleans ==== | ==== Booleans ==== | ||
Line 325: | Line 362: | ||
while: { left <= right } do: { | while: { left <= right } do: { | ||
while: { cmp(table[left], | while: { cmp(table[left], | ||
- | left := left + 1 }; | + | left := left + 1 |
+ | | ||
while: { cmp(pivot, table[right]) } do: { | while: { cmp(pivot, table[right]) } do: { | ||
- | right := right - 1 }; | + | right := right - 1 |
+ | | ||
if: (left <= right) then: { | if: (left <= right) then: { | ||
// swap elements | // swap elements |
at/tutorial/basic.txt · Last modified: 2020/02/09 22:05 by elisag