[Haskell-cafe] Hyper-recursion?
Lawrence Bottorff
borgauf at gmail.com
Wed Jan 18 01:11:15 UTC 2017
I guess I'm using a looser definition of recursion, something not exactly
"self-referential." For example, I'm on the phone with someone, and then I
accept a call-waiting call. You can go into multiple depths of call
waiting, then wind your way back out as you hang up on each -- all the way
back to the original caller. Or, with my example, I could have a state
represented as some polynomial, a_nx^n + a_n-1x^(n-1) + . . ., then a
"change" happens when a new polynomial "goes into" the first,
a_n(b_ny^n + b_n-1y^n-1 + ...)^n + a_n-1x^n-1 ...
This could go on and on, new polynomials substituted into one of the
variables of the previous. All I want to say with this is that I consider
this also recursive in nature, even though I can't imagine how this would
be "self-referential" or looking typically inductive.
I'm not a expert on the whole Bitcoin blockchain, but your (Olaf)
now = change 0 . change (-1) . change (-2) . {...ad infinitum}
looks like one. And no, there shouldn't be a clock, per se. Yes, parcels
would be polygons, with sides shared -- although this isn't germane to the
bigger question.
On Tue, Jan 17, 2017 at 3:14 PM, Olaf Klinke <olf at aatal-apotheke.de> wrote:
> If I may step into this discussion, I'd like to suggest you start
> modelling your world of parcels more concretely, as data types. From there
> it should be easier to grasp our hyper-recursion.
>
> Question: Does every parcel have its own time, or is there a universal
> clock ticking in the background?
>
> If you have a uiversal clock, you could model your world as a linear
> series of state changes, stretching infinitely into the past and future.
> Hence two streams going out form a "now" would be the overarching data
> type. This has been used e.g. for doubly linked lists. Doesn't functional
> reactive programming use a similar model?
>
> Question: How does one identify a parcel of land? Is it a polygon of
> coordinates in some reference system? Hence can the state be seen as a
> finite set of (Polygon,Owner) pairs?
>
> Question: What is more important: The state or the state change? If the
> state is more important, a kind of graph might be the appropriate data
> structure. If the change is important, it might be interesting to model the
> world (and time) as a network of functions.
>
> Question to all mathematicians on this list: Suppose (again assuming a
> universal clock) there is a type (a set?) X and a function
>
> change :: Integer -> (X -> X)
>
> where the state of "now" is to be understood as the value
>
> now = change 0 . change (-1) . change (-2) . {...ad infinitum}
>
> Under which circumstances does this determine the value of "now"? The only
> instance I can think of are contractions on a (compact) metric space.
> (Brouwer's/Banach's fixed point theorems)
>
> I second the contributors who suggest that this has not much to do with
> recursion nor corecursion. To me, the essence of recusion is
> self-reference. A function building e.g. an infinite stream from a seed is
> not self-referential in itself, it is the resulting data that is
> self-referential.
>
> Olaf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170117/8c49ff54/attachment.html>
More information about the Haskell-Cafe
mailing list