CLP[ (abs (i_1 .. i_n) b) ] = (@prod (abs (clo i_1 .. i_n) (let ((v_1 (@get 2 clo)) .. ) CLP[b] )) v_1 .. )wobei {v1,…} = freie Variablen in b
CLP[ (app f a_1 .. a_n) ] = (let ((clo CLP[f]) (code (@get 1 clo))) (app code clo CLP[a_1] .. CLP[a_n]) )
zur Erhaltung der CPS-Form: anstatt erster Regel
CLP[ (let ((i (abs (..) ..))) b) ] = ...