For instance, I see the following kind of recursive templates very often:
fun{a:t@ype}
list0_length(xs: list0(a)): int =
case+ xs of
| list0_nil() => 0
| list0_cons(x1, xs) => 1 + list0_length<a>(xs)
This kind of code may be working, but should be avoided. Instead,
one can replace it with the following code:
fun{a:t@ype}
list0_length(xs: list0(a)): int =
length(xs) where
{
fun length(xs: list0(a)): int =
case+ xs of
| list0_nil() => 0
| list0_cons(_, xs) => 1 + length(xs)
}
BTW, recursive templates, by default, are not supported in ATS3.
On Tuesday, June 3, 2025 at 6:45:35 PM UTC-4 gmhwxi wrote:
>
> I see that you wrote some ATS2 code.
>
> Unfortunately, there is not much written documentation on ATS2 (or ATS in
> general).
> It is often difficult for one to immediately figure out how various
> features in ATS2 should
> be used.
>
> In your code, you have some recursive templates (e.g., your template
> list0RevHelper is
> recursive).
>
> In general, templates should *not* be recursive. In this case,
> list0RevHelper does not need
> to be a template in the first place. Just turn it into an ordinary
> (recursive) function. Then I believe
> your problem will go away.
>
> --Hongwei
>
>
>
> On Monday, June 2, 2025 at 8:23:32 PM UTC-4 jin wrote:
>
>> when i t[image: 2025-06-03 07.57.11.png]ry to use list0_rev (list0_tail
>> (listo_rev lista)) as initlist function, there notice segment default at
>> runtime, so i change function to the picture below, error disappear, i want
>> to know what cause the error, is there any relation between the error and
>> the "make stable" of the second picture, which seems like not nessesary,
>> that's really confuse[image: 2025-06-03 07.57.11.png]
>> [image: 2025-06-03 08.02.32.png][image: 2025-06-03 07.57.11.png]
>
>
--
You received this message because you are subscribed to the Google Groups
"ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/ats-lang-users/5261cd93-1c3d-4f0b-96b3-1165eb961cefn%40googlegroups.com.