You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.org
+11-8Lines changed: 11 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,13 +3,14 @@
3
3
A (WIP) adaptation of the classic [[https://sites.google.com/site/prologsite/prolog-problems][99 Prolog Problems]] by [[https://sites.google.com/site/prologsite/author][Werner Hett]] to
4
4
higher-order logic programming in [[http://www.lix.polytechnique.fr/~dale/lProlog/][λProlog]].
5
5
6
-
Before undertaking the problems, you may wish to review this slight adaptation
7
-
of Hett's wonderful guidance:
8
6
9
7
* The spirit of the problems
8
+
Before undertaking the problems, you may wish to review this slight adaptation
9
+
of Hett's wonderful guidance (additions in =[]=):
10
10
11
+
#+begin_quote
11
12
The purpose of this problem collection is to give you the opportunity to
12
-
practice your skills in higher-order logic programming. Your goal should be to
13
+
practice your skills in [higher-order] logic programming. Your goal should be to
13
14
find the most elegant solution of the given problems. Efficiency is important,
14
15
but logical clarity is even more crucial. Some of the (easy) problems can be
15
16
trivially solved using built-in predicates. However, in these cases, you learn
@@ -18,22 +19,24 @@ more if you try to find your own solution.
18
19
Every predicate that you define should begin with a comment that describes it in
19
20
a declarative statement. Do not describe procedurally, what the predicate does,
20
21
but write down a logical statement which includes the arguments of the
21
-
predicate, and then describe the flow of data through the unification of terms.
22
+
predicate, [and then describe the flow of data through the unification of terms].
23
+
24
+
[Construct types to formalize the possible data for the predicates and
25
+
functions, then specify the types and modes for their arguments.]
26
+
#+end_quote
22
27
23
-
Construct types to formalize the possible data for the predicates and
24
-
functions, then specify the types and modes for their arguments.
25
28
26
29
* The problems
27
30
28
-
#+begin_src
31
+
#+begin_quote
29
32
The problems have different levels of difficulty. Those marked with a single
30
33
asterisk (*) are easy. If you have successfully solved the preceeding problems
31
34
you should be able to solve them within a few (say 15) minutes. Problems marked
32
35
with two asterisks (**) are of intermediate difficulty. If you are a skilled
33
36
Prolog programmer it shouldn't take you more than 30-90 minutes to solve them.
34
37
Problems marked with three asterisks (***) are more difficult. You may need more
35
38
time (i.e. a few hours or more) to find a good solution.
0 commit comments