Functional Programming (I2232)

The objective of this course is to:

  • To provide the theoretical basis for the study and modeling of reasoning.
  • Become familiar with the paradigms of functional programming, study its characteristics and know its fundamental principles.
  • Acquire practical experience in functional programming using good programming practices: abstraction, generality, modularity, reliability, performance.

In the table below, readings listed are taken from the course textbook:
Common LISP: A Gentle Introduction to Symbolic Computation, David S. Touretzky, Dover Books on Engineering, Dover Publications, 2013.
Buy at:                


Chapter title Readings Optional
Chapter 1: Functions and Data 1 -- 26 27 -- 29
Chapter 2: Lists 31 -- 69, 72 -- 76 70 -- 71
Chapter 3: EVAL Notation 77 -- 96, 103 -- 104, 106 -- 109, 110 -- 112 105 -- 106, 109 -- 110
Chapter 4: Conditionals 113 -- 129, 132 -- 133 134 -- 136
Chapter 5: Variables and Side Effects 137 -- 148 153 -- 158
Chapter 6: List Data Structures 159 -- 185 192 -- 200
Chapter 7: Applicative Programming 201 -- 216 216 -- 219, 224 -- 230
Chapter 8: Recursion 231 -- 262, 266 -- 272 262 -- 266, 273 -- 274
Chapter 9: Input/Output 287 -- 293, 299 -- 300 294 -- 296, 301 -- 305
Chapter 10: Assignment 307 -- 314, 315 -- 325 314 -- 315, 332 -- 339
Chapter 11: Iteration and Block Structure 341 -- 355 358 -- 364
Chapter 12: Structures and The Type System
Chapter 13: Arrays, Hash Tables, And Property Lists
Chapter 14: Macros and Compilation
Please download Common Lisp prior on your laptops.
Click here to check the official website or directly here to be redirected to download the executable file.


Lab Readings
LS 1: EVAL notation Pages 96 -- 103
Supplementary Resources Material
BOOK: Common Lisp Recipes: A Problem-Solution Approach 1st Edition Edmund Weitz, 2016.
BOOK: Common LISP: A Gentle Introduction to Symbolic Computation, David S. Touretzky, Dover Books on Engineering, Dover Publications, 2013. To be purchased
Year Partial Session 1 Session 2
2018-2019