about summary refs log blame commit diff stats
path: root/arc/Readme
blob: a4f0e2126c90c4dbd95303002ea8d208fd486685 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14













                                                                   
Original prototype, last modified 2015-03-14

First install [Racket](http://racket-lang.org) (just for the initial
prototype). Then:

  $ cd mu/arc
  $ git clone http://github.com/arclanguage/anarki
  $ ./mu test mu.arc.t  # run tests

Example programs:

  $ ./mu factorial.mu  # computes factorial of 5
  $ ./mu fork.mu  # two threads print '33' and '34' forever
  $ ./mu channel.mu  # two threads in a producer/consumer relationship
span class="p">(n:integer <- next-input) (reply default-space:space-address) ]) (function increment-counter [ (default-space:space-address <- new space:literal 30:literal) (0:space-address/names:init-counter <- next-input) ; setup outer space; it *must* come from 'init-counter' (x:integer <- next-input) (n:integer/space:1 <- add n:integer/space:1 x:integer) (reply n:integer/space:1) ]) (function main [ (default-space:space-address <- new space:literal 30:literal) ; counter A (a:space-address <- init-counter 34:literal) ; counter B (b:space-address <- init-counter 23:literal) ; increment both by 2 but in different ways (increment-counter a:space-address 1:literal) (bres:integer <- increment-counter b:space-address 2:literal) (ares:integer <- increment-counter a:space-address 1:literal) ; check results ($print (("Contents of counters a: " literal))) (print-integer nil:literal/terminal ares:integer) ($print ((" b: " literal))) (print-integer nil:literal/terminal bres:integer) ($print (("\n" literal))) ]) ; compare http://www.paulgraham.com/accgen.html