Re:Total Functional Programming [pdf]
by mkehrt on Wednesday October 05, 2016 @08:21PM
(#12649143)
Essentially, to get a nonterminating, program, your top level function needs to take a piece of codata to corecurse over to run indefinitely. Since you can't actually write a program that takes no arguments that produces an infinite piece of data, all programs must terminate.
[ Parent
| on HN ]
>Since you can't actually write a program that takes no arguments that produces an infinite piece of data
Huh?
inf = Cons 1 infHm, you may be right. I though that was going to violate:
> Each recursive function call must be on a syntactic subcomponent of its formal parameter.
But it doesn't. But you can't actually use that to get a nonterminating program, because you can't recurse over it:
> Ordinary recursion is not legal over codata, because it might not terminate.