SCM Repository
View of /sml/trunk/src/ml-yacc/lib/stream.sml
Parent Directory
|
Revision Log
Revision 250 -
(download)
(annotate)
Sat Apr 17 18:57:03 1999 UTC (22 years ago) by monnier
File size: 828 byte(s)
Sat Apr 17 18:57:03 1999 UTC (22 years ago) by monnier
File size: 828 byte(s)
This commit was generated by cvs2svn to compensate for changes in r249, which included commits to RCS files with non-trunk default branches.
(* ML-Yacc Parser Generator (c) 1989 Andrew W. Appel, David R. Tarditi * * $Log$ * Revision 1.1.1.10 1999/04/17 18:56:10 monnier * version 110.16 * * Revision 1.2 1997/08/26 19:18:55 jhr * Replaced used of "abstraction" with ":>". * # Revision 1.1.1.1 1997/01/14 01:38:04 george # Version 109.24 # * Revision 1.1.1.1 1996/01/31 16:01:43 george * Version 109 * *) (* Stream: a structure implementing a lazy stream. The signature STREAM is found in base.sig *) structure Stream :> STREAM = struct datatype 'a str = EVAL of 'a * 'a str ref | UNEVAL of (unit->'a) type 'a stream = 'a str ref fun get(ref(EVAL t)) = t | get(s as ref(UNEVAL f)) = let val t = (f(), ref(UNEVAL f)) in s := EVAL t; t end fun streamify f = ref(UNEVAL f) fun cons(a,s) = ref(EVAL(a,s)) end;
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |