A Simple Case Test

(contents of the file Case.pco)
general info
{ tag => fun:
 [tag, fun];
 else: 0;
 case @clauses:
 { default: void;
 siz: size(clauses);
 max: 0;
 for(k: 1, k:= k+1, not(k> siz),
 { clause: clauses[k];
 if(clause[1] = else,
 default:= clause[2],
 if(clause[1]> max,
 max:= clause[1],
 void)) });
 tbl[max]: default;
 for(k: 1, k:= k+1, not(k> siz),
 { clause: clauses[k];
 if(clause[1] = else,
 void,
 tbl[clause[1]]:= clause[2]) });
 
 select(tag):
 if(tag> max, default, tbl[tag]) };
 display('case loaded', eoln) }

Back to the metacircular evaluator

This page was made (with lots of hard work!) by Wolfgang De Meuter

AltStyle によって変換されたページ (->オリジナル) /