The SAPL Interpreter

Sapl is an intermediate lazy functional language.
The Clean compiler has a Sapl code generator integrated in its back-end.
Sapl is aimed at using Lazy Functional Programming Languages at the client side of web-applications.
For this, two execution platforms for Sapl exist. A Java Applet version and a JavaScript version.

Java Applet Sapl interpreter including benchmarks

JavaScript Sapl compiler including benchmarks



Sapl is based on a pure graph-reduction machine that can also be used for executing lambda-calculus expressions.
The following lambda-expression is a closed formula for generating prime numbers using Eratosthenes sieve:

(\szc.(\rf.(\b.bb(ff(s(sz))))(\bl.l\ht.h(bbt)\k.ch(bb(rrkkt))))(\rpkl.l\ht.k(cz(rrppt))\k.ch(rrpkt))(\fn.cn(ff(sn))))(\nfg.gn)(\fg.f)(\htg.ght)

A more readable version of it can be run using the following interpreter:

Lambda calculus Interpreter


Made by Jan Martin Jansen