On 06/08/2015 06:23 PM, Andrei Alexandrescu wrote:
On 6/8/15 5:43 AM, Timon Gehr wrote:
On 06/08/2015 09:51 AM, Andrei Alexandrescu wrote:
I've been wondering for a good while whether it's possible with what we
have. Looks like it is, modulo some gnarly hacks in introspecting
function types.

https://github.com/D-Programming-Language/phobos/pull/3394


Destroy!

Andrei

- This is not alpha renaming. Alpha renaming renames a variable at the
point it is bound and updates all occurrences of the variable. Alpha
renaming does not change the term it is applied to.
http://en.wikipedia.org/wiki/Lambda_calculus#.CE.B1-conversion
   This is type replacement.

I'm using the term a bit loosely but I think appropriately.
...

Well, no, there is no binding site involved. You could use ReplaceType or SubstituteType.

- How do you use it to create recursive types using algebraic? (Assuming
that's what your comment refers to.)

I've added documentation and examples to
http://erdani.com/d/phobos-prerelease/std_variant.html#.Algebraic.
Feedback appreciated.
...

Oh, it is used in the implementation. That clears it up.

Now, how do I declare mutually recursive types? :o)


Thanks,

Andrei


Reply via email to