I have a subject Introduction to logic and functional programming but the course is not provided in detail. This is the provided course.

Introduction to declarative programming paradigms. The functional style of programming, paradigms of development of functional programs, use of higher order functional and pattern matching. Introduction to lambda calculus. Interpreters for functional languages and abstract machines for lazy and eager lambda calculi, Types, type- checking and their relationship to logic. Logic as a system for declarative programming. The use of pattern-matching and programming of higher order functions within a logic programming framework. Introduction to symbolic processing. The use of resolution and theorem-proving techniques in logic programming. The relationship between logic programming and functional programming.

I want to ask that, I have the SICP book. Will it be enough for the preparation of course?

For example: I don't know what topic can be under The functional style of programming, paradigms of development of functional programs.

Please guide me if anyone can in a proper direction. I cannot ask teachers as there are none for this subject.

  • 4
    $\begingroup$ Unfortunately, we can not know. Only the people who have designed the course will. I don't know how a course without any teachers and/or literature recommendations can exist, but there you are. Maybe we can help you Computer Science Chat; otherwise you might try asking former students. $\endgroup$ – Raphael Nov 13 '14 at 16:03
  • $\begingroup$ @Raphael These are recommended literature 1. S. Arun-Kumar: Introduction to Logic for Computer Science 2. Structure and Interpretation of Computer Programs, H Abelson and G Sussmann, MIT Press. 3. John Kelly: The Essence of Logic, Prentice-Hall of India. 4. The Functional Approach to Programming, G. Cousineau and M. Mauny, Cambridge University Press $\endgroup$ – Totoro Nov 14 '14 at 9:11
  • 2
    $\begingroup$ Well then, best start with these! $\endgroup$ – Raphael Nov 14 '14 at 9:15

My suggestion is in preparation for this course, to try and read some beginners guides on pure functional programming language. Having some practical experience actually doing some functional programming before learning the theory could be beneficial.

I learned functional programming with F# which might not be the best idea, since it is a hybrid language and allows you to do a lot of imperative programming in between.

My suggestion is to get into either SML or Haskell and try to translate some imperative programs into functional programming to get an idea of how it feels to work with it.

Logic programming is a whole other beast and I think it is probably best to go the other way around with this, since it is really difficult to understand the programs without some basic knowledge of Data Logic.

  • $\begingroup$ Yes, this is an excellent advice. But I disagree that translating imperative programs into functional programs is a good way of learning functional programming. Instead, think of problems you'd like to solve and write functional programs that solve them. May I suggest "calculate the list of the first $n$ primes". $\endgroup$ – Andrej Bauer Feb 18 '15 at 20:20

Not the answer you're looking for? Browse other questions tagged or ask your own question.