26216
|
1 |
(* Title: Pure/ML-Systems/polyml_old_basis.ML
|
|
2 |
ID: $Id$
|
|
3 |
|
|
4 |
Fixes for the old SML basis library (before Poly/ML 4.2.0).
|
|
5 |
*)
|
|
6 |
|
|
7 |
structure String =
|
|
8 |
struct
|
|
9 |
fun isSuffix s1 s2 =
|
|
10 |
let val n1 = size s1 and n2 = size s2
|
|
11 |
in if n1 = n2 then s1 = s2 else n1 <= n2 andalso String.substring (s2, n2 - n1, n1) = s1 end;
|
|
12 |
fun isSubstring s1 s2 =
|
|
13 |
String.isPrefix s1 s2 orelse
|
|
14 |
size s1 < size s2 andalso isSubstring s1 (String.extract (s2, 1, NONE));
|
|
15 |
open String;
|
|
16 |
end;
|
|
17 |
|
|
18 |
structure Substring =
|
|
19 |
struct
|
|
20 |
open Substring;
|
|
21 |
val full = all;
|
|
22 |
end;
|
|
23 |
|
|
24 |
structure TextIO =
|
|
25 |
struct
|
|
26 |
open TextIO;
|
|
27 |
fun inputLine is =
|
|
28 |
let val s = TextIO.inputLine is
|
|
29 |
in if s = "" then NONE else SOME s end;
|
|
30 |
end;
|