

99 Prolog Problems - swannodette
https://sites.google.com/site/prologsite/prolog-problems

======
ses
Very nice, Prolog is a vastly under rated language which is very useful for a
lot of logic and decision making programming problems.

~~~
Homunculiheaded
I just started learning Prolog recently and I strongly agree with it's status
as being 'underrated'. One thing I've found worth noting is the increasing
interest semantic web technologies with no noticeable uptick in the interest
in logic programming. This is especially odd when you consider that it's not
much of a stretch to look at RDF triples simply as facts and rules in Prolog.
I have a feeling that just as Rails rediscovered the mvc work in the late 70s
smalltalk community, the semweb world will rediscover prolog along with the
larger world of constraint/logic programming.

~~~
silentbicycle
One problem with Prolog is that the "standard" doesn't include a lot of useful
functionality that implementations typically provide. Not all Prologs have
packaging systems or constraint programming extensions, for example, yet they
make Prolog dramatically more useful. SWI Prolog (<http://www.swi-
prolog.org/>) and GNU Prolog (<http://www.gprolog.org/>) are pretty good.
(Daniel Diaz, GNU Prolog's primary author, also has some excellent research
papers on implementing constraint programming.)

Also, for anyone curious about Prolog, I found experimenting with Erlang made
many aspects of Prolog make more sense, and vice versa. Erlang was originally
a Prolog DSL, and many minor details carried over.

~~~
swannodette
I also highly recommend The Reasoned Schemer as another route to understanding
the concepts behind Prolog - you essentially build the heart of a Prolog
system in a couple hundred lines of Scheme.

The level of density in such a short text as well the ability to work through
it without having to sit in front of a computer is invigorating (I've had to
reread the first 80 pages or so about 5 times now, of course it might just be
that I'm slow ;). It certainly succeeds at showing the beauty of a system that
elegantly intertwines FP w/ LP.

Oleg (of Haskell fame) has some excellent further resources,
<http://kanren.sourceforge.net/> and William Byrd's thesis is a treasure trove
of things to consider: <http://gradworks.umi.com/33/80/3380156.html>

~~~
silentbicycle
William Clocksin's _Clause and Effect_ is a similarly styled book, using
Prolog. It also has a couple good case studies.

I also _highly_ recommend Sterling and Shapiro's _The Art of Prolog_.

~~~
swannodette
I've also heard only good things about the Bratko book, Prolog Programming for
Artificial Intelligence.

I'm curious as to what put you off about TRS? The only thing I found initially
frustrating was the lack of hand-holding to be found in the earlier books in
the Schemer series. But then I starting working out everything I found
confusing w/ pencil and paper and found the going much easier.

~~~
silentbicycle
I'm probably going to give it another try eventually, but I sold it - I
preferred learning logic programming ideas through Prolog itself, rather than
Scheme / KANREN.

I've heard good stuff about the Bratko book, too - there's a new edition being
published in a few months, I'm planning on checking it out then.

------
kingkilr
Nice collection, would be awesome if there were a way to submit solutions
online and have them tested.

------
gsivil
Great work. So well structured and easy to browse. Thanks

------
morbidkk
same exercise for scala <http://aperiodic.net/phil/scala/s-99/>

------
cb33
...but a bitch ain't one. sorry.

~~~
dkarl
Redeem yourself; run with the line and make it Prolog-specific.

~~~
zandorg
I got 99 bitches but backward propagation ain't one.

