From c2ef9233feb49e4dc90f4f58fc499eb2c607bf7d Mon Sep 17 00:00:00 2001 From: forsyth Date: Wed, 6 Apr 2011 22:37:27 +0100 Subject: 20110406-2237 --- appl/lib/lists.b | 13 ++++++++----- dis/lib/lists.dis | Bin 1265 -> 1309 bytes include/version.h | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/appl/lib/lists.b b/appl/lib/lists.b index 2210c33e..52e007bb 100644 --- a/appl/lib/lists.b +++ b/appl/lib/lists.b @@ -88,18 +88,21 @@ last[T](l: list of T): T } # delete the first instance of x in l -delete[T](x: T, l: list of T): list of T +delete[T](x: T, al: list of T): list of T for { T => eq: fn(a, b: T): int; } { - o: list of T; - for(; l != nil; l = tl l) + for(l := al; l != nil; l = tl l){ if(T.eq(x, hd l)){ + o: list of T; + for(; al != l; al = tl al) + o = hd al :: o; l = tl l; for(; o != nil; o = tl o) l = hd o :: l; - break; + return l; } - return l; + } + return al; } pair[T1, T2](l1: list of T1, l2: list of T2): list of (T1, T2) diff --git a/dis/lib/lists.dis b/dis/lib/lists.dis index 9f5c082a..58ce79ab 100644 Binary files a/dis/lib/lists.dis and b/dis/lib/lists.dis differ diff --git a/include/version.h b/include/version.h index 8fb4defe..66fe5d84 100644 --- a/include/version.h +++ b/include/version.h @@ -1 +1 @@ -#define VERSION "Fourth Edition (20110404)" +#define VERSION "Fourth Edition (20110406)" -- cgit v1.2.3