# HG changeset patch # User paulson # Date 875183093 -7200 # Node ID 242546f35f8ed0e75550cde1b06efdf6bbe073cc # Parent 2f86b403d9756199d264c00f981fdaceb9f7336e Deleted the unused gtake and recoded enumerate to use foldl diff -r 2f86b403d975 -r 242546f35f8e TFL/tfl.sml --- a/TFL/tfl.sml Thu Sep 25 12:20:24 1997 +0200 +++ b/TFL/tfl.sml Thu Sep 25 12:24:53 1997 +0200 @@ -19,16 +19,8 @@ val list_mk_type = U.end_itlist (curry(op -->)); -fun gtake f = - let fun grab(0,rst) = ([],rst) - | grab(n, x::rst) = - let val (taken,left) = grab(n-1,rst) - in (f x::taken, left) end - in grab - end; - -fun enumerate L = - rev(#1(U.rev_itlist (fn x => fn (alist,i) => ((x,i)::alist, i+1)) L ([],0))); +fun enumerate l = + rev(#1(foldl (fn ((alist,i), x) => ((x,i)::alist, i+1)) (([],0), l))); fun stringize [] = "" | stringize [i] = Int.toString i