summaryrefslogtreecommitdiffstats
path: root/samples/list.slam
blob: c0fa5daf1e3fffda52248d1b23917b3b2ab78c80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
define prepend
    $prepend_val !
    $prepend_phrase !
    '[ $prepend_val @ $prepend_phrase @ unphrase '] phrase
    $prepend_val forget $prepend_phrase forget
    ;

define append
    $append_val !
    $append_phrase !
    '[ $append_phrase @ unphrase $append_val @ '] phrase
    $append_val forget $append_phrase forget
    ;

define stack-empty? stack-size 0 eq? ;

define ..
    [ stack-empty? not ]
        [ . ] loop
    ;

[ 2 3 ] 1 prepend .
[ 2 3 ] 4 append .
[ 1 2 3 ] pop $1 ! pop $2 ! pop $3 !
$1 ?
$2 ?
$3 ?