After
having seen in class the topic of macros, I thought I could not exist something
more difficult in Clojure but I realized that I was totally wrong when I read
the chapter in the book and when the professor began to explain in class.
Logic programming is as defined in the book, a kind of puzzle where you have the final figure that they hope will be the result, but they do not give you a piece starter, a structure that can be useful to start or a clue. Only they tell you it does, with what works regularly and with what not, and from there create the procedure.
Another aspect that I find difficult is the issue of variables, and now a new concept known as fresh variables is introduced. Fresh variables are created to store temporary values and is only used in logic programming, for functional programming we have let function, with which we have been working.
On the other hand we have the issue of command to compile the program because it is not the same. When we are using logic programming we use the run* command to compile our program and, this return us a set of solutions. It is also mentioned that q is the most popular name that is used to name logical variables in logic programming. The logical variables are free from the time they are created and until a value is assigned.
It's a bit complicated the issue of match between patterns of different types of programming. Maybe understand how it works the function is not complicated, rather the syntax is the difficult part, and more when work just like the functions that we have used in functional programming.
The book's title seems interesting, try to learn a language per week is somewhat complicated, or maybe others could take it as a challenge.