The Reasoned Schemer
M**C
Mind opening
Great. Fun.
B**R
Brauchbare Einführung in miniKanren und damit auch clojure core logic
Ich habe mir dieses Buch gekauft um mehr über miniKanren zu lernen, da ich es in Form von clojure.core.logic verwenden möchte. Die online verfügbaren Dokumentationen dazu sind leider nicht sehr ergiebig oder greift an einer zu hohen Ebene an. Ich denke dieses Buch ist der Schlüssel, welcher diese Lücke füllt.Das Buch erklärt leider nicht sehr viel in Prosa, es versucht eher die Welt von miniKanren durch viele Beispiele abzustecken, so wie man es in einer Deklarativen Sprache selbst machen würde. Es macht durchaus Spaß die Beispiele nachzuvollziehen und daraus zu lernen, erfordert aber noch einiges an Eigenleistung um es zu verstehen.
M**R
fascinating and challenging
As the saying goes, if you like this sort of thing, this is the sort of thing you'll like. The authors have extended the approach of their classic book _The Little Schemer_ to encompass what is usually called logic programming, but which they refer to as "relational programming" (a much better name, in my opinion). They extend the Scheme language with relational analogues of many constructs, notably lambda and cond (in many, many variations), and also provide extended versions of standard Scheme operations like cons, car, and cdr. Basically, the relational approach involves taking the result of a function call and making it just another argument, but a special argument that can get assigned to as the result of the computation. Big deal, so what? you ask. The important thing is that _all_ of the function arguments behave this way, so that you can specify the result of a function (relation) and ask the system to generate the arguments. For instance, instead of saying 2 + 2 = X and figuring out what X is, you can say X + 2 = 4 and the system will figure out what X has to be (in this case... ummm... oh yeah, 2). To do this, the system uses a mechanism called "backtracking" which systematically tries alternatives until it either finds the answer, gives up, or (if you didn't program the search right) goes on forever. If you haven't seen this style of programming before, this book will definitely open your eyes.The relational/logic programming style is usually learned by studying the Prolog language, which is how I learned it (though I'm no expert). Having a knowledge of Prolog will definitely make this book easier to understand, although the approach given here is more modern than Prolog in several ways. For one thing, the named relations of Prolog are replaced here by anonymous relations (analogous to lambda expressions being anonymous functions), and for another, the (somewhat brutal) "cut" operator of Prolog, which is used to control backtracking, is ignored in favor of more subtle approaches involving interleaving solutions and giving up after single results are found.I think the approach of learning-by-pattern-recognition that all the "Little X" books use is fairly effective here, though I think a lot of readers (meaning me) wouldn't mind a more extended discussion of the mechanics of the system.All in all, if you liked _The Little Schemer_ and are curious about new ways of programming, you should definitely pick up a copy of this book. It will stretch your mind like a Slinky, and when you're done you'll have learned a new way of looking at programming.
R**R
論理型プログラミングから学ぶ処理系作成
Schemerシリーズの中では前二著とは独立しています。著者のひとり Oleg Kiselyov 氏の作成した miniKANREN 上でのプログラミングを全編で行います。 miniKANREN は Scheme 上に構築した論理型言語で、DSL の形態になっています。 miniKANREN は Scheme と似た condi などが含まれており、これらを上手に使って Prolog の教科書で出てくるレッドカットやグリーンカット等を分かり易く解説しています。こういった例から論理型といっても手続きの評価順序の影響があることを理解できます。読者として2つのグループを想定しているようです。ひとつは miniKANREN 上のプログラミングを通して論理型プログラミングを学ぶグループです。もうひとつは巻末の miniKANREN 作成から処理系の作成を学ぶグループです。前者の場合には予備知識は不要ですが、後者の場合にはマクロ等に関する深い知識が必要です。 SICP や On Lisp を読み終わっているぐらいの知識が必要だと思います。自分のスキルアップとともに読み取れる内容がどんどん深くなっていくのが処理系作成の醍醐味です。自分の Scheme のスキルを確認するために何度か読み返してみると新しい発見ができる面白い本だと思います。Clause and Effect と一緒に読むと Prolog を学びやすいのでお勧めです。
A**R
Really good but not funny
Really good introduction to the topic.No where near as funny as advertised.To the point and hinting at complications without getting distracted. Short but still compleat.
Trustpilot
4 days ago
1 week ago