14.11.2012 Views

Curry: An Integrated Functional Logic Language

Curry: An Integrated Functional Logic Language

Curry: An Integrated Functional Logic Language

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

After applying these transformation steps to all rules in the program, we obtain a program without<br />

sections and λ-abstractions where all local declarations contain only free variables. Note that<br />

partial applications are not eliminated since they can be treated as shown in Section D.5.<br />

The final program might not be a valid <strong>Curry</strong> program due to the transformation of where<br />

declarations into let declarations. In order to obtain a valid <strong>Curry</strong> program, we can perform the<br />

following final transformations:<br />

Transform l = let decls in (c|r) into l | c = r where decls<br />

and l = let decls in r into l = r where decls<br />

The latter transformation is only necessary if r is not of type Success.<br />

77

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!