all repos — min @ 7fa3f654868f6b460770674dc6051a6cf9837f32

A small but practical concatenative programming language.

tests/stack.min

 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
 28
 29
 30
 31
 32
 33
 34
 35
'test load
'test import

"stack" describe

  (1 id 1 ==) assert

  (2 id 2 ==) assert

  (2 pop stack () ==) assert

  (1 dup stack (1 1) ==) assert

  (3 2 (1 +) dip + 6 ==) assert

  (1 2 4 '+ dip stack (3 4) ==) assert

  (1 2 4 '+ keep stack (1 6 4) ==) assert

  ((1) (2 swap append) sip concat (1 2 1) ==) assert

  (1 (2 3) cons (1 2 3) ==) assert

  (1 2 nip 2 ==) assert

  (1 2 over stack (1 2 1) ==) assert

  (1 2 3 pick stack (1 2 3 1) ==) assert

  ((1 2 3) ('sum 'size) => cleave / 2 ==) assert

  ((1 2) (3 4) ((0 at) (1 at)) spread stack (1 4) ==) assert

  report
  newstack