SCM Repository
Annotation of /sml/trunk/old-basis/2004/basis-2004.sml
Parent Directory
|
Revision Log
Revision 4146 - (view) (download)
1 : | jhr | 4146 | (* basis-2004.sml |
2 : | * | ||
3 : | * COPYRIGHT (c) 2015 The Fellowship of SML/NJ (http://www.smlnj.org) | ||
4 : | * All rights reserved. | ||
5 : | * | ||
6 : | * This file rebinds various basis module names to their 2004 versions. | ||
7 : | *) | ||
8 : | |||
9 : | (* the 2004 versions of the modified Basis signatures *) | ||
10 : | signature ARRAY = | ||
11 : | sig | ||
12 : | type 'a array | ||
13 : | type 'a vector | ||
14 : | |||
15 : | val maxLen : int | ||
16 : | |||
17 : | val array : int * 'a -> 'a array | ||
18 : | val fromList : 'a list -> 'a array | ||
19 : | val tabulate : int * (int -> 'a) -> 'a array | ||
20 : | |||
21 : | val length : 'a array -> int | ||
22 : | val sub : 'a array * int -> 'a | ||
23 : | val update : 'a array * int * 'a -> unit | ||
24 : | |||
25 : | val vector : 'a array -> 'a vector | ||
26 : | |||
27 : | val copy : { src : 'a array, dst : 'a array, di : int } -> unit | ||
28 : | val copyVec : { src : 'a vector, dst : 'a array, di : int } -> unit | ||
29 : | |||
30 : | val appi : (int * 'a -> unit) -> 'a array -> unit | ||
31 : | val app : ('a -> unit) -> 'a array -> unit | ||
32 : | val modifyi : (int * 'a -> 'a) -> 'a array -> unit | ||
33 : | val modify : ('a -> 'a) -> 'a array -> unit | ||
34 : | val foldli : (int * 'a * 'b -> 'b) -> 'b -> 'a array -> 'b | ||
35 : | val foldri : (int * 'a * 'b -> 'b) -> 'b -> 'a array -> 'b | ||
36 : | val foldl : ('a * 'b -> 'b) -> 'b -> 'a array -> 'b | ||
37 : | val foldr : ('a * 'b -> 'b) -> 'b -> 'a array -> 'b | ||
38 : | |||
39 : | val findi : (int * 'a -> bool) -> 'a array -> (int * 'a) option | ||
40 : | val find : ('a -> bool) -> 'a array -> 'a option | ||
41 : | val exists : ('a -> bool) -> 'a array -> bool | ||
42 : | val all : ('a -> bool) -> 'a array -> bool | ||
43 : | val collate : ('a * 'a -> order) -> 'a array * 'a array -> order | ||
44 : | end | ||
45 : | |||
46 : | signature LIST = | ||
47 : | sig | ||
48 : | |||
49 : | datatype 'a list = nil | :: of ('a * 'a list) | ||
50 : | |||
51 : | exception Empty | ||
52 : | |||
53 : | val null : 'a list -> bool | ||
54 : | val hd : 'a list -> 'a (* raises Empty *) | ||
55 : | val tl : 'a list -> 'a list (* raises Empty *) | ||
56 : | val last : 'a list -> 'a (* raises Empty *) | ||
57 : | |||
58 : | val getItem : 'a list -> ('a * 'a list) option | ||
59 : | |||
60 : | val nth : 'a list * int -> 'a (* raises Subscript *) | ||
61 : | val take : 'a list * int -> 'a list (* raises Subscript *) | ||
62 : | val drop : 'a list * int -> 'a list (* raises Subscript *) | ||
63 : | |||
64 : | val length : 'a list -> int | ||
65 : | |||
66 : | val rev : 'a list -> 'a list | ||
67 : | |||
68 : | val @ : 'a list * 'a list -> 'a list | ||
69 : | val concat : 'a list list -> 'a list | ||
70 : | val revAppend : 'a list * 'a list -> 'a list | ||
71 : | |||
72 : | val app : ('a -> unit) -> 'a list -> unit | ||
73 : | val map : ('a -> 'b) -> 'a list -> 'b list | ||
74 : | val mapPartial : ('a -> 'b option) -> 'a list -> 'b list | ||
75 : | |||
76 : | val find : ('a -> bool) -> 'a list -> 'a option | ||
77 : | val filter : ('a -> bool) -> 'a list -> 'a list | ||
78 : | val partition : ('a -> bool ) -> 'a list -> ('a list * 'a list) | ||
79 : | |||
80 : | val foldr : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b | ||
81 : | val foldl : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b | ||
82 : | |||
83 : | val exists : ('a -> bool) -> 'a list -> bool | ||
84 : | val all : ('a -> bool) -> 'a list -> bool | ||
85 : | |||
86 : | val tabulate : (int * (int -> 'a)) -> 'a list (* raises Size *) | ||
87 : | |||
88 : | val collate : ('a * 'a -> order) -> 'a list * 'a list -> order | ||
89 : | |||
90 : | end (* signature LIST *) | ||
91 : | |||
92 : | signature LIST_PAIR = | ||
93 : | sig | ||
94 : | |||
95 : | exception UnequalLengths | ||
96 : | val zip : ('a list * 'b list) -> ('a * 'b) list | ||
97 : | val zipEq : ('a list * 'b list) -> ('a * 'b) list | ||
98 : | val unzip : ('a * 'b) list -> ('a list * 'b list) | ||
99 : | val map : ('a * 'b -> 'c) -> ('a list * 'b list) -> 'c list | ||
100 : | val mapEq : ('a * 'b -> 'c) -> ('a list * 'b list) -> 'c list | ||
101 : | val app : ('a * 'b -> unit) -> ('a list * 'b list) -> unit | ||
102 : | val appEq : ('a * 'b -> unit) -> ('a list * 'b list) -> unit | ||
103 : | val foldl : (('a * 'b * 'c) -> 'c) -> 'c -> ('a list * 'b list) -> 'c | ||
104 : | val foldr : (('a * 'b * 'c) -> 'c) -> 'c -> ('a list * 'b list) -> 'c | ||
105 : | val foldlEq: (('a * 'b * 'c) -> 'c) -> 'c -> ('a list * 'b list) -> 'c | ||
106 : | val foldrEq: (('a * 'b * 'c) -> 'c) -> 'c -> ('a list * 'b list) -> 'c | ||
107 : | val all : ('a * 'b -> bool) -> ('a list * 'b list) -> bool | ||
108 : | val allEq : ('a * 'b -> bool) -> ('a list * 'b list) -> bool | ||
109 : | val exists : ('a * 'b -> bool) -> ('a list * 'b list) -> bool | ||
110 : | |||
111 : | end (* signature LIST_PAIR *) | ||
112 : | |||
113 : | signature MONO_ARRAY = | ||
114 : | sig | ||
115 : | |||
116 : | eqtype array | ||
117 : | type elem | ||
118 : | type vector | ||
119 : | |||
120 : | val maxLen : int | ||
121 : | |||
122 : | (* array creation functions *) | ||
123 : | val array : int * elem -> array | ||
124 : | val fromList : elem list -> array | ||
125 : | val tabulate : int * (int -> elem) -> array | ||
126 : | |||
127 : | val length : array -> int | ||
128 : | val sub : array * int -> elem | ||
129 : | val update : array * int * elem -> unit | ||
130 : | |||
131 : | val vector : array -> vector | ||
132 : | val copy : { src : array, dst : array, di : int } -> unit | ||
133 : | val copyVec : { src : vector, dst : array, di : int } -> unit | ||
134 : | |||
135 : | |||
136 : | val appi : (int * elem -> unit) -> array -> unit | ||
137 : | val app : (elem -> unit) -> array -> unit | ||
138 : | val modifyi: (int * elem -> elem) -> array -> unit | ||
139 : | val modify : (elem -> elem) -> array -> unit | ||
140 : | |||
141 : | val foldli : (int * elem * 'a -> 'a) -> 'a -> array -> 'a | ||
142 : | val foldri : (int * elem * 'a -> 'a) -> 'a -> array -> 'a | ||
143 : | val foldl : (elem * 'a -> 'a) -> 'a -> array -> 'a | ||
144 : | val foldr : (elem * 'a -> 'a) -> 'a -> array -> 'a | ||
145 : | |||
146 : | val findi : (int * elem -> bool) -> array -> (int * elem) option | ||
147 : | val find : (elem -> bool) -> array -> elem option | ||
148 : | val exists : (elem -> bool) -> array -> bool | ||
149 : | val all : (elem -> bool) -> array -> bool | ||
150 : | val collate : (elem * elem -> order) -> array * array -> order | ||
151 : | |||
152 : | end | ||
153 : | |||
154 : | signature MONO_VECTOR = | ||
155 : | sig | ||
156 : | |||
157 : | type vector | ||
158 : | type elem | ||
159 : | |||
160 : | val maxLen : int | ||
161 : | |||
162 : | (* vector creation functions *) | ||
163 : | val fromList : elem list -> vector | ||
164 : | val tabulate : int * (int -> elem) -> vector | ||
165 : | |||
166 : | val length : vector -> int | ||
167 : | val sub : vector * int -> elem | ||
168 : | val concat : vector list -> vector | ||
169 : | |||
170 : | val update : vector * int * elem -> vector | ||
171 : | |||
172 : | val appi : (int * elem -> unit) -> vector -> unit | ||
173 : | val app : (elem -> unit) -> vector -> unit | ||
174 : | val mapi : (int * elem -> elem) -> vector -> vector | ||
175 : | val map : (elem -> elem) -> vector -> vector | ||
176 : | val foldli : (int * elem * 'a -> 'a) -> 'a -> vector -> 'a | ||
177 : | val foldri : (int * elem * 'a -> 'a) -> 'a -> vector -> 'a | ||
178 : | val foldl : (elem * 'a -> 'a) -> 'a -> vector -> 'a | ||
179 : | val foldr : (elem * 'a -> 'a) -> 'a -> vector -> 'a | ||
180 : | |||
181 : | val findi : (int * elem -> bool) -> vector -> (int * elem) option | ||
182 : | val find : (elem -> bool) -> vector -> elem option | ||
183 : | val exists : (elem -> bool) -> vector -> bool | ||
184 : | val all : (elem -> bool) -> vector -> bool | ||
185 : | val collate: (elem * elem -> order) -> vector * vector -> order | ||
186 : | |||
187 : | end | ||
188 : | |||
189 : | signature OPTION = | ||
190 : | sig | ||
191 : | datatype 'a option = NONE | SOME of 'a | ||
192 : | |||
193 : | exception Option | ||
194 : | |||
195 : | val getOpt : ('a option * 'a) -> 'a | ||
196 : | val isSome : 'a option -> bool | ||
197 : | val valOf : 'a option -> 'a | ||
198 : | val filter : ('a -> bool) -> 'a -> 'a option | ||
199 : | val join : 'a option option -> 'a option | ||
200 : | val app : ('a -> unit) -> 'a option -> unit | ||
201 : | val map : ('a -> 'b) -> 'a option -> 'b option | ||
202 : | val mapPartial : ('a -> 'b option) -> 'a option -> 'b option | ||
203 : | val compose : (('a -> 'b) * ('c -> 'a option)) -> 'c -> 'b option | ||
204 : | val composePartial : (('a -> 'b option) * ('c -> 'a option)) -> 'c -> 'b option | ||
205 : | |||
206 : | end | ||
207 : | |||
208 : | signature STRING = | ||
209 : | sig | ||
210 : | eqtype char | ||
211 : | eqtype string | ||
212 : | |||
213 : | val maxSize : int | ||
214 : | val size : string -> int | ||
215 : | |||
216 : | val sub : string * int -> char | ||
217 : | |||
218 : | val str : char -> string | ||
219 : | val extract : string * int * int option -> string | ||
220 : | val substring : string * int * int -> string | ||
221 : | |||
222 : | val ^ : string * string -> string | ||
223 : | val concat : string list -> string | ||
224 : | val concatWith : string -> string list -> string | ||
225 : | |||
226 : | val implode : char list -> string | ||
227 : | val explode : string -> char list | ||
228 : | val map : (char -> char) -> string -> string | ||
229 : | val translate : (char -> string) -> string -> string | ||
230 : | val tokens : (char -> bool) -> string -> string list | ||
231 : | val fields : (char -> bool) -> string -> string list | ||
232 : | |||
233 : | val isPrefix : string -> string -> bool | ||
234 : | val isSubstring : string -> string -> bool | ||
235 : | val isSuffix : string -> string -> bool | ||
236 : | |||
237 : | val compare : string * string -> order | ||
238 : | val collate : (char * char -> order) -> string * string -> order | ||
239 : | |||
240 : | val < : (string * string) -> bool | ||
241 : | val <= : (string * string) -> bool | ||
242 : | val > : (string * string) -> bool | ||
243 : | val >= : (string * string) -> bool | ||
244 : | |||
245 : | val toString : string -> String.string | ||
246 : | val scan : (char, 'a) StringCvt.reader -> (string, 'a) StringCvt.reader | ||
247 : | val fromString : String.string -> string option | ||
248 : | val toCString : string -> String.string | ||
249 : | val fromCString : String.string -> string option | ||
250 : | |||
251 : | end | ||
252 : | |||
253 : | signature TEXT = | ||
254 : | sig | ||
255 : | structure Char : CHAR | ||
256 : | structure String : STRING | ||
257 : | structure Substring : SUBSTRING | ||
258 : | structure CharVector : MONO_VECTOR | ||
259 : | structure CharArray : MONO_ARRAY | ||
260 : | structure CharVectorSlice : MONO_VECTOR_SLICE | ||
261 : | structure CharArraySlice : MONO_ARRAY_SLICE | ||
262 : | sharing type Char.char = String.char = Substring.char | ||
263 : | = CharVector.elem = CharArray.elem | ||
264 : | = CharVectorSlice.elem = CharArraySlice.elem | ||
265 : | sharing type Char.string = String.string = Substring.string | ||
266 : | = CharVector.vector = CharArray.vector | ||
267 : | = CharVectorSlice.vector = CharArraySlice.vector | ||
268 : | sharing type CharArray.array = CharArraySlice.array | ||
269 : | sharing type CharArraySlice.vector_slice = CharVectorSlice.slice | ||
270 : | end | ||
271 : | |||
272 : | (* rebind basis structures using 2004 signatures *) | ||
273 : | structure Array : ARRAY = Array | ||
274 : | structure CharArray : MONO_ARRAY = CharArray | ||
275 : | structure CharVector : MONO_VECTOR = CharVector | ||
276 : | structure List : LIST = List | ||
277 : | structure ListPair : LIST_PAIR = ListPair | ||
278 : | structure Option : OPTION = Option | ||
279 : | structure Real64Array : MONO_ARRAY = Real64Array | ||
280 : | structure Real64Vector : MONO_VECTOR = Real64Vector | ||
281 : | structure Text : TEXT = Text | ||
282 : | structure Vector : VECTOR = Vector | ||
283 : | structure Word8Array : MONO_ARRAY = Word8Array | ||
284 : | structure Word8Vector : MONO_VECTOR = Word8Vector | ||
285 : | |||
286 : | (* the Text modules are extracted from the Text structure *) | ||
287 : | structure CharArray : MONO_ARRAY = Text.CharArray | ||
288 : | structure CharVector : MONO_VECTOR = Text.CharVector | ||
289 : | structure String : STRING = Text.String |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |