To me, the appeal of prolog stems from its metaprogramming capabilities, continuations, coroutines, attributes, cut, call, etc. That's why Picat has less appeal, despite the fact that it fixes many of Prolog's warts.
Without control of the execution strategy, why not just use SQL for data-heavy applications, and an SMT or OR-specific solver for logic problems?
At least, SWI has adapted =>/2 for single-sided unification, https://www.swi-prolog.org/pldoc/man?section=ssu.
An interesting paper on the if-then-else issue is "indexing dif/2" https://arxiv.org/pdf/1607.01590
You've been around during the heyday of Prolog, do you happen know why it was never able to get a foothold in the OR or logic solver worlds?
@Peter, very interesting comments!
To me, the appeal of prolog stems from its metaprogramming capabilities, continuations, coroutines, attributes, cut, call, etc. That's why Picat has less appeal, despite the fact that it fixes many of Prolog's warts.
Without control of the execution strategy, why not just use SQL for data-heavy applications, and an SMT or OR-specific solver for logic problems?
At least, SWI has adapted =>/2 for single-sided unification, https://www.swi-prolog.org/pldoc/man?section=ssu.
An interesting paper on the if-then-else issue is "indexing dif/2" https://arxiv.org/pdf/1607.01590
You've been around during the heyday of Prolog, do you happen know why it was never able to get a foothold in the OR or logic solver worlds?