Singly-linked list/Element definition: Difference between revisions
Content added Content deleted
Line 309: | Line 309: | ||
=={{header|ATS}}== |
=={{header|ATS}}== |
||
<lang ATS>(* The Rosetta Code |
<lang ATS>(* The Rosetta Code linear list type can contain any vt@ype. |
||
(The ‘@’ means it doesn’t have to be the size of a pointer. You can |
|||
read {0 <= n} as ‘for all non-negative n’. *) |
|||
datatype rclist_t (t : t@ype+, n : int) = |
|||
| rclist_t_nil (t, 0) |
|||
| {0 <= n} rclist_t_cons (t, n + 1) of (t, rclist_t (t, n)) |
|||
(* The Rosetta Code linear list type can contain any vt@ype and so is |
|||
more general. *) |
|||
dataviewtype rclist_vt (vt : vt@ype+, n : int) = |
dataviewtype rclist_vt (vt : vt@ype+, n : int) = |
||
| rclist_vt_nil (vt, 0) |
| rclist_vt_nil (vt, 0) |