Teaching Wiki

Der Vergangenheit einen Schritt hinterher.

User Tools

Site Tools


Functional & Logic Programming Languages

Lecture Notes

I will try to scan my lecture notes in a timely fashion. See below for a live feed of which lectures are already covered.

  • FLP: February 29 ☿
    Course organisation; functional and logic programming explained; imperative v. declarative programming; 'what' v. 'how'; what are logic programs?; knowledge and queries; why logic programming?
  • FLP: March 1 ♃
    Introduction to logic programming; logic programs are interpreted; introducing Prolog; basics of logic programs: variables, predicates, facts, knowledge, goals, answers, solutions, rules, programs, clauses; clauses and Horn clauses; substitution: modus operandi, ground substitutions, composition; unification: unifiers, unifiability, most general unifiers, unification algorithms
  • FLP: March 2 ♀
    unification (cont'd); how Prolog solves programs; SLD resolution and trees; refutations, selection and rejection rules, success and failure paths; procedural interpretation
  • FLP: March 7 ☿
    basic Prolog programming: atoms, variables, numbers, complex terms, constants, operators; lists in Prolog; lists v. arrays; constants and infix operators; unification in Prolog; Robinson algorithm; Prolog execution model
  • FLP: March 14 ☿
    SLD tree traversal strategies; depth-first search: left-to-right, declaration order, backtracking; pros and cons with depth-first approach; generate & test; more advanced logic programming: recursion
  • FLP: March 15 ♃
    recursion (cont'd); expressing natural numbers with recursion; recursive arithmetics: addition, subtraction, multiplication, division, squaring; describing procedure v. describing rules; list processing; lists as recursive structures; appending to lists
  • FLP: March 21 ☿
    list processing (cont'd); append/3: appending to a list; mode of a predicate; member/2: test list membership; remove/3: removing from a list; zip/3: merging two lists
  • FLP: March 22 ♃
    list processing (cont'd); zip/3 (example); flatten/2: list flattening; records and structures; trees as recursive data structures; tree membership and traversal


vu/flp/start.txt · Last modified: 2016-03-12 15:25 (3 years ago) by Stefan Unterweger