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) ] = ...