diff options
| -rw-r--r-- | appl/lib/lists.b | 13 | ||||
| -rw-r--r-- | dis/lib/lists.dis | bin | 1265 -> 1309 bytes | |||
| -rw-r--r-- | 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 Binary files differindex 9f5c082a..58ce79ab 100644 --- a/dis/lib/lists.dis +++ b/dis/lib/lists.dis 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)" |
