summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorforsyth <forsyth@vitanuova.com>2011-04-07 10:04:31 +0100
committerforsyth <forsyth@vitanuova.com>2011-04-07 10:04:31 +0100
commit09fa9b42130335ddb8876b9be05f780093519864 (patch)
tree502762ed084531ebd86c1aff3bfb112d36f221dc /man
parentc2ef9233feb49e4dc90f4f58fc499eb2c607bf7d (diff)
20110407-1004
Diffstat (limited to 'man')
-rw-r--r--man/2/lists23
-rw-r--r--man/2/sys-dup28
2 files changed, 40 insertions, 11 deletions
diff --git a/man/2/lists b/man/2/lists
index ae52ab49..eebcb964 100644
--- a/man/2/lists
+++ b/man/2/lists
@@ -1,6 +1,6 @@
.TH LISTS 2
.SH NAME
-lists: allsat, anysat, append, combine, concat, delete, filter, ismember, last, map, pair, partition, rev, unpair\- list operations
+lists: allsat, anysat, append, combine, concat, delete, filter, find, ismember, last, map, pair, partition, rev, unpair\- list operations
.SH SYNOPSIS
.EX
include "lists.m"
@@ -11,6 +11,8 @@ combine: fn[T](l1: list of T, l2: list of T): list of T;
concat: fn[T](l1: list of T, l2: list of T): list of T;
delete: fn[T](x: T, l: list of T): list of T
for { T => eq: fn(a, b: T): int; };
+find: fn[T](x: T, l: list of T): list of T
+ for { T => eq: fn(a, b: T): int; };
ismember: fn[T](x: T, l: list of T): int
for { T => eq: fn(a, b: T): int; };
last: fn[T](l: list of T): T;
@@ -38,7 +40,7 @@ Reference types are
.BR list ,
.BR module ,
and
-.BI ref "adt".
+.BI ref " adt".
None of the operations change their parameter lists: they always return a new list.
.PP
First, there is a group of common list operations.
@@ -77,6 +79,23 @@ that returns true (non-zero) if two values of type
.I T
are considered equal.
.PP
+.B Find
+finds the first instance of
+.I x
+in list
+.I l
+and returns the tail of
+.I l
+with
+.I x
+at its head.
+.B Find
+returns nil if there is no
+instance of
+.I x
+in
+.IR l .
+.PP
.B Ismember
returns 1 if
there is an element of
diff --git a/man/2/sys-dup b/man/2/sys-dup
index 7b96b47a..2fd45f7b 100644
--- a/man/2/sys-dup
+++ b/man/2/sys-dup
@@ -21,6 +21,9 @@ or simply `file descriptor' when the context is understood.
holds an integer-valued file descriptor, the form used
by the operating system, in a structure that can be reference counted
and garbage collected.
+When the
+.B FD
+value is reclaimed, the system automatically closes the associated integer file descriptor.
There are occasions when a program must access the underlying
integer file descriptor, such as when rearranging the standard input
and output for a new subprocess.
@@ -47,15 +50,22 @@ If a suitable file descriptor cannot be found,
returns \-1.
.PP
.B Fildes
-uses the integer file descriptor
-.B fd
-to create a new Limbo
-file descriptor, suitable for other
-.B Sys
-module functions.
-It returns
-.B nil
-if it cannot convert
+duplicates the integer file descriptor
+.IR fd ,
+as if by
+.BI "sys->dup(" fd ",-1"),
+and returns a reference to the new descriptor as an
+.B FD
+value,
+making it usable by other functions in
+.BR Sys ,
+such as
+.IR sys-print (2)
+and
+.IR sys-read (2).
+.B Fildes
+returns nil
+if it cannot duplicate
.IR fd .
.SH SEE ALSO
.IR sys-intro (2),