Look at your favorite programming language and identify the little functional logic languages embedded in it (meaning: backtracking evaluation with unification to find unknowns). JavaScript, C#, and Java have one for regular expressions.
-
-
There's a pretty big difference between this happening at compile time (templates, typeclasses) and at runtime (regexps). There is a real risk with the latter—small changes to the code or even just its inputs can cause exponentially worse performance.
-
One of my friends joked that Prolog was a DSL to turn normal algorithms into exponential ones. That might be a bit of an exaggeration, but it has an element of truth. I remember seeing this problem play out with JS regular expressions and "catastrophic backtracking"
- 2 more replies
New conversation -
-
-
That's all fine. But based on your audience I would expect you'd want to clearly distinguish between computations that can be run at compile time(s) for more advanced error checking and what features are erased for performance in final machine code. And focus on good C++ interop.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Python also has continuations, although it's the only mainstream language I know to do so. https://pypy.readthedocs.io/en/latest/stackless.html#continulets …
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Backtracking and unification leads to Prolog.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
i have a few questions regardng fortnite
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.