Annotation of researchv10no/cmd/sml/doc/examples/SK.sml, revision 1.1

1.1     ! root        1: (* ----- An Interpreter for Call-by-Value SK-calculus ----- *)
        !             2: 
        !             3: datatype Term = S | K | appl of Term * Term;
        !             4: 
        !             5: fun Eval(appl(a,b)) = Apply(appl(Eval a,Eval b)) |
        !             6:     Eval a = a
        !             7: 
        !             8: and Apply(appl(appl(K,a),b)) = a |
        !             9:     Apply(appl(appl(appl(S,a),b),c)) = Eval(appl(appl(a,c),appl(b,c))) |
        !            10:     Apply a = a;
        !            11: 
        !            12: infix *;
        !            13: fun f * g = appl(f,g);      (* abbreviation for application *)
        !            14: 
        !            15: val I = Eval(S * K *  K);   (* I a = a *)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.