Re:Unison Programming Language
by lamontcg on Sunday June 27, 2021 @03:01PM
(#27654229)
A git-like datastore for your AST+callgraph.
[ Parent
| on HN ]
Let's say you have definitions like that:
f: Nat -> Nat
g: Nat -> Nat
h: Nat -> Nat
h x = g (x * 2)
g x = f (x * 3)
f x = x < 0 ? 1 : h (x / 4)
And now you change f to be f x = x < 1 ? 1 : h (x / 4)
How do you do that? There's a cycle in the callgraph. In fact - how do you calculate a hash of a function that calls itself if you need its hash to calculate its hash :)EDIT: nevermind, recursion is a special case handled differently.