Example #1
0
 public static std_core._list <A> VList <A>(A[] v, std_core._list <A> tail)
 {
     std_core._list <A> xs = tail;
     for (int i = v.Length - 1; i >= 0; i--)
     {
         xs = new std_core._list <A>(v[i], xs);
     }
     return(xs);
 }
Example #2
0
    public static string ListToString(std_core._list <int> xs)
    {
        StringBuilder sb = new StringBuilder();

        while (xs != std_core._list <int> .Nil_)
        {
            sb.Append(CharToString(xs.head));
            xs = xs.tail;
        }
        return(sb.ToString());
    }
Example #3
0
 public static std_core._list <int> StringToList(string s)
 {
     std_core._list <int> xs = std_core._list <int> .Nil_;
     for (int i = s.Length - 1; i >= 0; i--)
     {
         if (Char.IsLowSurrogate(s[i]) && i > 0)
         {
             i--;
         }
         xs = new std_core._list <int>(Char.ConvertToUtf32(s, i), xs);
     }
     return(xs);
 }
Example #4
0
    public static A[] UnVList <A>(std_core._list <A> xs)
    {
        int len = 0;

        std_core._list <A> acc = xs;
        while (acc != std_core._list <A> .Nil_)
        {
            len++;
            acc = acc.tail;
        }
        A[] v = new A[len];
        acc = xs;
        for (int i = 0; i < len; i++)
        {
            v[i] = acc.head;
            acc  = acc.tail;
        }
        return(v);
    }