code: purgatorio

Download patch

ref: d540dcf6834b4bec8a2d21f2fe95eccf49f97b03
parent: 87d72e7e8614d96b4f61adae5fb05b0534231c4c
author: henesy <devnull@localhost>
date: Fri Dec 11 20:31:50 EST 2020

add arrays(2) manual ;; lists(2): reference arrays(2) ;; arrays.m: change order of functions ;; .hgignore: ignore .orig files

--- a/.hgignore
+++ b/.hgignore
@@ -4,6 +4,7 @@
 *.patch
 *.diff
 *.log
+*.orig
 [8qkv965o].out
 [8qkv965o].emu
 obj.out
--- a/appl/lib/arrays.b
+++ b/appl/lib/arrays.b
@@ -3,17 +3,17 @@
 include "arrays.m";
 
 # Return the array 'a' for which 'f' is fulfilled on its contents
-filter[T](a: array of T, f: ref fn(x: T): int): array of T {
+filter[T](a: array of T, p: ref fn(x: T): int): array of T {
 	if(a == nil)
 		return nil;
 
-	if(f(a[0]))
-		return prepend(filter(tail(a), f), a[0]);
+	if(p(a[0]))
+		return prepend(filter(tail(a), p), a[0]);
 
 	if(len a < 2)
 		return nil;
 
-	return filter(tail(a), f);
+	return filter(tail(a), p);
 }
 
 # Return the array 'a₀' with the function 'f' applied to its contents
--- a/man/2/lists
+++ b/man/2/lists
@@ -202,3 +202,5 @@
 .SH BUGS
 The current implementation of polymorphism is limited to reference types and strings,
 which in turn limits use of this module.
+.SH SEE ALSO
+.IR arrays (2)
--- a/module/arrays.m
+++ b/module/arrays.m
@@ -2,23 +2,24 @@
 {
 	PATH:	con "/dis/lib/arrays.dis";
 
-	filter:		fn[T](a: array of T, f: ref fn(x: T): int): array of T;
-
-	map:		fn[T](a₀: array of T, f: ref fn(x: T): T): array of T;
-
-	pair:		fn[T₁, T₂](a₁: array of T₁, a₂: array of T₂): array of (T₁, T₂);
-
 	find:		fn[T](a: array of T, x: T): array of T
 					for {	T =>	Equals:	fn(a, b: T): int;	};
 
-	prepend:	fn[T](a₀: array of T, x: T): array of T;
-
 	append:		fn[T](a₀: array of T, x: T): array of T;
 
+	prepend:	fn[T](a₀: array of T, x: T): array of T;
+
 	tail:		fn[T](a: array of T): array of T;
 
+	pair:		fn[T₁, T₂](a₁: array of T₁, a₂: array of T₂): array of (T₁, T₂);
+
 	# Return a pretty string representing the array
 	stringify:	fn[T](a: array of T): string
 					for {	T =>	String:	fn(a: self T): string;	};
+
+	filter:		fn[T](a: array of T, p: ref fn(x: T): int): array of T;
+
+	map:		fn[T](a₀: array of T, f: ref fn(x: T): T): array of T;
+
 
 };