arrows pointing right and left

Ambidexter examples


email Scott Turner
home
Ambidexter

summary
examples
tutorial
questions
rationale
download
reference
links

obiglatory

hello.ambi
Hello, world!
beer.ambi
Print 100 verses of the repetitive song.
quine.ambi
The quine program is ugly. Its implementation is handicapped by the primitive state of some of Ambidexter's features.
  • There is no way to put a backslash into a string or print a backslash. Therefore the program cannot define a function, and must use abstraction.
  • Concatenating multiple strings is tedious.
  • There is no way to embed a newline in a string, so I gave up on formatting the program legibly.
It will be easiest to address these by adding built-ins to the language in the next release.
factorial.ambi
iterative_factorial.ambi
iterative__factorial.ambi
A recursive factorial, and a couple of iterative alternatives.

features

or1.ambi
A simple function using an or-type and a type annotation.
aborts.ambi
Using the by-value aspect, shows that unused arguments are evaluated, by hanging on the evaluation of '(h<+hang$_unreached)'.
otherway.ambi
Using the by-name aspect, shows that unused arguments are not evaluated, ignoring the use of '[h->hang$_unreached]'.
boolean.ambi
Defines and uses an abstract boolean type.
list.ambi
Defines and uses an abstract list type constructor.

Support open standards!  
Valid XHTML 1.0!