xref: /inferno-os/module/lists.m (revision 09fa9b42130335ddb8876b9be05f780093519864)
12249108aSCharles.ForsythLists: module
22249108aSCharles.Forsyth{
33593ee73SCharles.Forsyth	PATH:	con "/dis/lib/lists.dis";
42249108aSCharles.Forsyth	map:	fn[T](f: ref fn(x: T): T, l: list of T): list of T;
52249108aSCharles.Forsyth	allsat:	fn[T](p: ref fn(x: T): int, l: list of T): int;
62249108aSCharles.Forsyth	anysat:	fn[T](p: ref fn(x: T): int, l: list of T): int;
72249108aSCharles.Forsyth	filter:	fn[T](p: ref fn(x: T): int, l: list of T): list of T;
82249108aSCharles.Forsyth	partition:	fn[T](p: ref fn(x: T): int, l: list of T): (list of T, list of T);
92249108aSCharles.Forsyth
102249108aSCharles.Forsyth	append:	fn[T](l: list of T, x: T): list of T;
112249108aSCharles.Forsyth	concat:	fn[T](l: list of T, l2: list of T): list of T;
122249108aSCharles.Forsyth	combine:	fn[T](l: list of T, l2: list of T): list of T;
132249108aSCharles.Forsyth	reverse:	fn[T](l: list of T): list of T;
142249108aSCharles.Forsyth	last:		fn[T](l: list of T): T;
15*09fa9b42Sforsyth	find:		fn[T](x: T, l: list of T): list of T
16*09fa9b42Sforsyth		for { T => eq:	fn(a, b: T): int; };
172249108aSCharles.Forsyth	delete:	fn[T](x: T, l: list of T): list of T
182249108aSCharles.Forsyth		for { T => eq:	fn(a, b: T): int; };
192249108aSCharles.Forsyth	pair:	fn[T1, T2](l1: list of T1, l2: list of T2): list of (T1, T2);
202249108aSCharles.Forsyth	unpair:	fn[T1, T2](l: list of (T1, T2)): (list of T1, list of T2);
212249108aSCharles.Forsyth	ismember:	fn[T](x: T, l: list of T): int
222249108aSCharles.Forsyth		for { T =>	eq:	fn(a, b: T): int; };
232249108aSCharles.Forsyth};
242249108aSCharles.Forsyth
252249108aSCharles.Forsyth#sort?
262249108aSCharles.Forsyth#join
272249108aSCharles.Forsyth#split
28