This semester I am taking a course in PROLOG. It has been almost 5 weeks now since I have been taking this course; and I strongly believe that every programmer should take at least one course in a logic programming class. I feel a course of this type will open the mind so greatly that it will not only help one program in other languages but help in several other aspects of one’s life.
In institutions like Caltech and MIT, PROLOG is a required course for any computer science students. Unfortunately that’s not the case in my university (@ CSUN).
A one paragraph idea behind PROLOG is the following: thinking of logic as a method of computation. In all other structured/object-oriented you cannot explicitly supply the core-logic — instead you have to find an algorithm that when followed will compute something logical. There is a vast difference between the two. They require completely different method of thinking.
One of these days I will post a sample code written in PROLOG and perhaps to compare the same program in C#.