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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Contents<br />

1 Introduction 3<br />

2 Programs 3<br />

2.1 Datatype Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

2.2 Type Synonym Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

2.3 Function Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.3.1 Functions vs. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

2.3.2 Conditional Equations with Boolean Guards . . . . . . . . . . . . . . . . . . 7<br />

2.4 Local Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.5 Free Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.6 Constraints and Equality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

2.7 Higher-order Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

3 Operational Semantics 12<br />

4 Types 14<br />

4.1 Built-in Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

4.1.1 Boolean Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

4.1.2 Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

4.1.3 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

4.1.4 Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

4.1.5 Floating Point Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

4.1.6 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

4.1.7 Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

4.1.8 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

4.1.9 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

4.2 Type System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

5 Expressions 20<br />

5.1 Arithmetic Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

5.2 List Comprehensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

5.3 Case Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

6 Modules 23<br />

7 Input/Output 27<br />

7.1 Monadic I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

7.2 Do Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

8 Encapsulated Search 29<br />

8.1 Search Goals and Search Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

8.2 Local Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

8.3 Predefined Search Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

8.4 Choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

1

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

Saved successfully!

Ooh no, something went wrong!