3 ms·
Interesting. More often than as the primary product or deliverable of a project, I've personally used Prolog for development support, such as for combinatorial
by tannhaeuser 10y ago
Interesting. More often than as the primary product or deliverable of a project, I've personally used Prolog for development support, such as for combinatorial test case generation, parsers and DSLs, metadata stores and code generators, and also as a theorem prover of sorts/decision procedure for properties of process models. I always thought Prolog really shines in these roles.
I also often wondered why folks spend big time on "rules engines" (glorified RETE forward-chaining engines) but don't consider Prolog, it being an ISO-standard language with multiple mature implementations.
- naasking 10y agoI think the focus on RETE is due to the implicit efficiency advantages of the more restricted execution model. Unification and backtracking aren't always friendly or easily optimized.
- nickpsecurity 10y agoIn addition to naasking, I'll also say that it might be intuitive to people used to describing business rules and processes as a series of conditional steps. Maps more naturally to forward chaining. I mean, it's basically If-Then rules almost anyone is familiar with. Other style requires a bit of change in thinking.
- mark_l_watson 10y agoRate is optimized for very large rules sets, but performs poorly with large working data memories.