« first day (396 days earlier)      last day (177 days later) » 

04:37
public struct Peano
{
    public delegate Peano AppPeano();
    public AppPeano? appPeano;

    public Peano(AppPeano? appPeano)
    {
        this.appPeano = appPeano;
    }

    public static Peano halt = new(null);
    public static Peano Iter(Peano peano)
    {
        return new(() => peano);
    }

    public static Peano omega = Iter(omega);
}
I'm so glad that C# can do this.
It seems C# is really the new C, unlike C++.
Wait
public struct Peano
{
    public delegate Peano AppPeano();
    public AppPeano? appPeano;

    public Peano()
    {
        appPeano = null;
    }

    public Peano(Peano peano)
    {
        appPeano = () => peano;
    }

    public static Peano omega = new(omega);
}
Better.
 
5 hours later…
10:00
I can't imagine why
 
13 hours later…
22:52
would a question about advantages and drawbacks of different ways of implementing mathematical sets as a core language feature be on topic here? I haven't kept up with all the new rules
I'm specifically looking for a way that supports stuff like 2N subset N in finite time, which a naive lazy list can't do
I only care about countably infinite sets but it'd be interesting to hear about approaches that extend to uncountably too

« first day (396 days earlier)      last day (177 days later) »