Blame view

ref-impl/x/string-compare.s 740 Bytes
f2c4dc81   Salvador Abreu   added most of the...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
showString = map (s) -> () [
    writeString ("\""); writeString (s); writeString ("\"")
];

compare = map (s1, s2, op; v) -> () [
    showString (s1); writeString (op); showString (s2);
    writeString (" <=> "); writeBool (v);
    writeString (".\n")
];

a, b: string;

readStrings = map () -> bool [
    writeString ("String 1: ");
    a := readString();
    ? [ a = "" -> ^ false
      |   *    -> writeString ("String 2: ");
		  b := readString();
		  ^ true ]
];

program = map () -> () [
    * [ readStrings() -> compare(a, b, " <  ",  a<b);
			 compare(a, b, " <= ", a<=b);
			 compare(a, b, " =  ",  a=b);
			 compare(a, b, " ~= ", a~=b);
			 compare(a, b, " >= ", a>=b);
			 compare(a, b, " >  ",  a>b);
			 writeString("\n") ]
]