All the Perl that's Practical to Extract and Report

Navigation

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Without JavaScript enabled, you might want to
use the classic discussion system instead. If you login, you can remember this preference.

In the long term, the intent is to allow logic programming in Perl. However, I realize now that many people don't know what that is, so I'll write another entry to explain it. It's fascinating, but not something done much in Perl (because Perl has no native ability to do that, aside from a limited equivalent with regular expressions).

I like the sound of this. I've not tried to build SWI-Prolog and either of the XS modules that wrap it, but would like to have some Prolog-ish rulesets once in a while. The prior attempt [cpan.org] at a Prolog-in-Perl hasn't moved in years. Starting over with the WAM (Warren Abstract Machine) [searchspaniel.com] Prolog engine sounds good to me. (Yes, I did some Prolog back during the AI wars.)

For those that don't know what we're talking about, you might want to check out a Prolog Tutorial [google.com], there are quite a few available.

In the long term, the intent is to allow logic programming in Perl.... It's... not something done much in Perl because Perl has no native ability to do that...

I had thought that in the truely long term that the Perl6 Rules [cpan.org] would provide not just more elegant and efficient parsing but also LP rules.

"More
generally, I want logic programming to be one of the paradigms that
Perl supports."
- Larry Wall, perl6.language [1 [perl.org]]
"But let and friends need to be blazing fast if we're ever going to use Perl
for logic programming, or even recursive descent parsing."
- Larry Wall, Apocalypse6
[2 [perl.com]]

However, the Perl6::Rules module doc doesn't hint at how to do LP, so I'll agree that LP is not natively supported today, only through the SWI-Prolog XS modules.

Now that I see that SWI-Prolog [swi-prolog.org] is available as Debian modules [debian.org], I might want to give the SWI wrappers a try (but they're not available as Debs? SWI wrappers are available as PPMs from ActiveState).

Did you notice the former MIT Press WAM book [vanx.org] is now free-to-download for non-profit use?

Actually, I have downloaded the WAM book and started working with it, but I don't have as much free time as I would like. That could be a very long project and the current implementation actually works (and also appears to be based on WAM, but it doesn't fully implement it.)