I'll warn you that Picat is very much a "research language" and a lot of the affordances you'd expect with a polished PL just aren't there yet. There's also this really great "field notes" repo from another person who learned it: https://github.com/dsagman/picat
Side note: Just realized who you were. Read through Practical TLA+ recently modeling a few things at work. Incredibly helpful book for working through my first concrete model in practice.
The line reorder issue is evergreen and it seems all languages need to either go through this phase and fix it, or gaslight its users forever that it's "not really a problem".
I always felt like Prolog's ability to execute programs was entirely accidental.
To me, it feels like a data description language that someone discovered could be tricked into performing computation.
Check out datalog! https://learn-some.com/ The tutorial there uses Clojure syntax but Datalog normally uses a Prolog syntax.
This datalog implementation uses prolog syntax, can even run the queries in prolog to contrast the model: https://des.sourceforge.io/
... a bit like life ...
I frequently find myself thinking "this would be a great fit for prolog etc." but always fail when it comes to the execution.
I always come back to prolog to tool around with it but haven’t done a ton.
Bidirectionality has always been super fascinating.
Didn’t know about Picat. 100% going to check it out.
I'll warn you that Picat is very much a "research language" and a lot of the affordances you'd expect with a polished PL just aren't there yet. There's also this really great "field notes" repo from another person who learned it: https://github.com/dsagman/picat
Totally fair. Realistically “check it out” means I’ll probably spin up an env and try modeling a few things to see how it feels.
I’m mostly a language tourist they likes kicking the tires on modes of modeling problems that feel different to my brain.
Started skimming those notes. Really solid info. Appreciate it!
Side note: Just realized who you were. Read through Practical TLA+ recently modeling a few things at work. Incredibly helpful book for working through my first concrete model in practice.
Maybe it's just me, but my gripe is that it looks declarative, but you have to read the code in execution order.
The line reorder issue is evergreen and it seems all languages need to either go through this phase and fix it, or gaslight its users forever that it's "not really a problem".