You know, I was just thinking about a problem I want to solve. Basically, imagine a game tournament where players sit down in groups of 4 or 5. In the next round, move everyone round and, where possible, players shouldn't ever sit next to each other again. There are a few other niceties, like "Should be sat in different positions if possible (so player X doesn't always go first on their table)", "Shouldn't even be on the same table as another player they've played with, if possible", "You shouldn't always be on a four player table, so mix it around", but the core is preventing two players sitting next to each other whenever possible.
Now, this is all trivial to generate in advance (and has been). Where it becomes awkward is if a player needs to leave, or a player arrives late. You can't necessarily just drop them from a table (because that turns a four player into a three player, say), or you might have all five player tables and so can't easily add someone.
And you know, constraint satisfaction like this sounds just like the sort of thing you might use Prolog for. Except I want to generalise it, so that I can specify "I have 25 players, I now have 27, what do I do?" And I don't know of a way to do that. So, would it be possible to write the program in another language (say, Perl) and then have Prolog execute it?
http://search.cpan.org/~ovid/AI-Prolog-0.734/lib/AI/Prolog.pm AI::Prolog is merely a convenient wrapper for a pure Perl Prolog compiler. Regrettably, at the current time, this requires you to know Prolog. That will change in the future.
Freaky.
Still, could be fun.