I would like to announce a small library hswip. It is an analogue of pyswip [1] python library in haskell.<br><br>Hswip allows to embed swi-prolog [2] interpreter into your haskell applications in a convenient way.<br><br>
Let't look at an example:<br> main = do<br> prologInit ["-q","-nosignals"]<br> prologCall "asserta(a(b,c))."<br> prologCall "asserta(parent(pam, bob))."<br> prologCall "asserta(parent(tom, bob))."<br>
prologCall "asserta(parent(tom, liz))."<br> prologCall "asserta(parent(bob, ann))."<br> prologCall "asserta(parent(bob, pat))."<br> prologCall "asserta(parent(pat, jim))."<br>
res <- prologCall "parent(X,Y)."<br> print res<br><br> Output:<br> [[("X","pat"),("Y","jim")],[("X","bob"),("Y","pat")],[("X","bob"),("Y","ann")],[("X","tom"),("Y","liz")],[("X","tom"),("Y","bob")],[("X","pam"),("Y","bob")]]<br>
<br>The library still has alpha quality and there are many things missing including exception handling and BSD license.<br><br>Any feedback is welcome!<br><br>-Evgeny Tarasov<br><br>[1] <a href="http://code.google.com/p/pyswip/">http://code.google.com/p/pyswip/</a><br>
[2] <a href="http://www.swi-prolog.org/">http://www.swi-prolog.org/</a><br>[3] <a href="http://hackage.haskell.org/package/hswip-0.3">http://hackage.haskell.org/package/hswip-0.3</a><br>