News for hackers. Stuff that matters.
Re:All you need is call/cc (2013) by oshiar53-0 on Wednesday August 25, 2021 @11:31AM (#28302911)
You can basically think of call/cc as subroutine + return/throw (break out of control structures), and delimited continuations as yield + next/send in Python.

Of course this explanation is heavily simplified.

Re:All you need is call/cc (2013) by ilammy on Wednesday August 25, 2021 @12:36PM (#28303702)
You sound a bit like those people, “git is just directed acyclic graph of objects, it’s all that simple”.
Re:All you need is call/cc (2013) by jasomill on Wednesday August 25, 2021 @12:55PM (#28303918)
“A monad is a monoid in the category of endofunctors, what's the problem?”

http://james-iry.blogspot.com/2009/05/brief-incomplete-and-m...

Re:All you need is call/cc (2013) by wbl on Wednesday August 25, 2021 @01:37PM (#28304395)
The difference is that that formulation is exactly correct whereas the other ones are not.
Re:All you need is call/cc (2013) by kazinator on Wednesday August 25, 2021 @04:21PM (#28306429)
Is git necessarily acyclic? Or is it just that nobody has bothered to contrive a git repo with cycles?

It seems possible in principle: via a kind of quining, a git commit can be created whose parent hash is its own.

It involves a bit of a tough search.

Re:All you need is call/cc (2013) by anyfoo on Thursday August 26, 2021 @12:50AM (#28310835)
It’s very likely specified as an acyclic graph (because, without checking, I see no reason why it would not be). So if you made a cyclic graph it would be wrong. It’s possible, likely even, that a lot of git’s implementation and associated tools don’t check for that, because it’s very hard[1] to achieve, but that just means stuff would break in more non-obvious ways.

[1] Constructing a cyclic git graph means finding a hash collision, and git uses SHA1 which is known to have weaknesses. With another hash algorithm it might be “practically impossible” instead of “very hard”.

Re:All you need is call/cc (2013) by oshiar53-0 on Thursday August 26, 2021 @11:18AM (#28316042)
You can use the "grafting" feature to emulate rewriting commit parents (but not true rewrite--as in the object itself is not actually modified and some tools do not respect it), so maybe give it a shot
Re:All you need is call/cc (2013) by oshiar53-0 on Thursday August 26, 2021 @11:13AM (#28315989)
I know it's oversimplified, but as a poor man's explanation I couldn't really think of a better way to articulate it at the moment