Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/old-basis/2004/basis-2004.sml
ViewVC logotype

Annotation of /sml/trunk/old-basis/2004/basis-2004.sml

Parent Directory Parent Directory | Revision Log 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