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); }
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()); }
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); }
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); }