--- ComputerTutorial.org.pamphlet 2006-08-05 02:31:26.139246200 +0200 +++ ComputerTutorial.pamphlet 2006-08-05 02:28:39.053647072 +0200 @@ -151,7 +151,7 @@ \begin{small} \begin{verbatim} #include "axllib" - print \<\< "hello, world" \<\< newline; + print << "hello, world" << newline; \end{verbatim} \end{small} @@ -197,9 +197,9 @@ } import from SingleInteger; -print \<\< signum 10 \<\< newline; -print \<\< signum 0 \<\< newline; -print \<\< signum(-10) \<\< newline; +print << signum 10 << newline; +print << signum 0 << newline; +print << signum(-10) << newline; \end{verbatim} \end{small} @@ -307,7 +307,7 @@ \begin{small} \begin{verbatim} - (stream: TextWriter) \<\< (thing: String): TextWriter == + (stream: TextWriter) << (thing: String): TextWriter == \end{verbatim} \end{small} @@ -321,7 +321,7 @@ \begin{small} \begin{verbatim} - print \<\< "first thing" \<\< "second thing" \<\< ... \<\< newline; + print << "first thing" << "second thing" << ... << newline; \end{verbatim} \end{small} @@ -329,7 +329,7 @@ \begin{small} \begin{verbatim} - ((((print \<\< "first thing") \<\< "second thing") \<\< ...) \<\< newline); + ((((print << "first thing") << "second thing") << ...) << newline); \end{verbatim} \end{small} @@ -360,9 +360,9 @@ \begin{small} \begin{verbatim} - print \<\< signum(10) \<\< newline; - print \<\< signum(0) \<\< newline; - print \<\< signum(-10) \<\< newline; + print << signum(10) << newline; + print << signum(0) << newline; + print << signum(-10) << newline; \end{verbatim} \end{small} @@ -398,9 +398,9 @@ import from SingleInteger; import from Properties; -print \<\< signum(10) \<\< newline; -print \<\< signum(0) \<\< newline; -print \<\< signum(-10) \<\< newline; +print << signum(10) << newline; +print << signum(0) << newline; +print << signum(-10) << newline; \end{verbatim} \end{small} @@ -813,7 +813,7 @@ \begin{small} \begin{verbatim} - print \<\< new(10, char "x") + print << new(10, char "x") \end{verbatim} \end{small} @@ -831,7 +831,7 @@ \begin{small} \begin{verbatim} - \<\<: (TextWriter, %) -> TextWriter; + <<: (TextWriter, %) -> TextWriter; \end{verbatim} \end{small} @@ -847,10 +847,10 @@ \begin{small} \begin{verbatim} - (port: TextWriter) \<\< (term1: %): TextWriter == { - port \<\< rep(term1).coef; - port \<\< "*"; - port \<\< rep(term1).var + (port: TextWriter) << (term1: %): TextWriter == { + port << rep(term1).coef; + port << "*"; + port << rep(term1).var } \end{verbatim} \end{small} @@ -886,7 +886,7 @@ \begin{small} \begin{verbatim} - port \<\< rep(term1).coef; + port << rep(term1).coef; \end{verbatim} \end{small} @@ -895,7 +895,7 @@ \begin{small} \begin{verbatim} - \<\<: (TextWriter, SingleInteger) -> TextWriter + <<: (TextWriter, SingleInteger) -> TextWriter \end{verbatim} \end{small} @@ -913,7 +913,7 @@ \begin{small} \begin{verbatim} - \<\<: (TextWriter, String) -> TextWriter + <<: (TextWriter, String) -> TextWriter \end{verbatim} \end{small} @@ -949,7 +949,7 @@ \begin{small} \begin{verbatim} - port \<\< rep(term1).var; + port << rep(term1).var; \end{verbatim} \end{small} @@ -958,7 +958,7 @@ \begin{small} \begin{verbatim} - \<\<: (TextWriter, Character) -> TextWriter + <<: (TextWriter, Character) -> TextWriter \end{verbatim} \end{small} @@ -1097,7 +1097,7 @@ Term: with { new: (SingleInteger, Character) -> %; dispose!: % -> (); - \<\<: (TextWriter, %) -> TextWriter; + <<: (TextWriter, %) -> TextWriter; coef: % -> SingleInteger; var: % -> Character; } @@ -1111,9 +1111,9 @@ dispose!(ignore: %):() == {} (port: TextWriter) \<\< (term1: %): TextWriter == { - port \<\< rep(term1).coef; - port \<\< "*"; - port \<\< rep(term1).var + port << rep(term1).coef; + port << "*"; + port << rep(term1).var } coef(term: %): SingleInteger == rep(term).coef; @@ -1125,9 +1125,9 @@ import from Character; import from Term; term1 := new(3, char "x"); -print \<\< term1 \<\< newline; -print \<\< coef term1 \<\< newline; -print \<\< var term1 \<\< newline; +print << term1 << newline; +print << coef term1 << newline; +print << var term1 << newline; dispose! term1; \end{verbatim} @@ -1260,14 +1260,14 @@ define BasicType: Category == with { =: (%, %) -> Boolean; ++ Equality test. ~=: (%, %) -> Boolean; ++ Inequality test. - \<\<: (TextWriter, %) -> TextWriter; ++ Basic output. - \<\<: % -> TextWriter -> TextWriter; ++ Basic output. + <<: (TextWriter, %) -> TextWriter; ++ Basic output. + <<: % -> TextWriter -> TextWriter; ++ Basic output. sample: %; ++ Example element. hash: % -> SingleInteger; ++ Hashing function. default (x: %) ~= (y: %): Boolean == not (x = y); default hash(x: %): SingleInteger == (0$Machine)::SingleInteger; - default (\<\<)(x: %)(p: TextWriter): TextWriter == p \<\< x; + default (<<)(x: %)(p: TextWriter): TextWriter == p << x; } \end{verbatim} \end{small} @@ -1415,7 +1415,7 @@ Term: BasicType with { new: (SingleInteger, Character) -> %; dispose!: % -> (); - \<\<: (TextWriter, %) -> TextWriter; + <<: (TextWriter, %) -> TextWriter; coef: % -> SingleInteger; var: % -> Character; } @@ -1432,13 +1432,13 @@ \begin{verbatim} =: (%, %) -> Boolean; ++ Equality test. ~=: (%, %) -> Boolean; ++ Inequality test. - \<\<: (TextWriter, %) -> TextWriter; ++ Basic output. - \<\<: % -> TextWriter -> TextWriter; ++ Basic output. + <<: (TextWriter, %) -> TextWriter; ++ Basic output. + <<: % -> TextWriter -> TextWriter; ++ Basic output. sample: %; ++ Example element. hash: % -> SingleInteger; ++ Hashing function. new: (SingleInteger, Character) -> %; dispose!: % -> (); - \<\<: (TextWriter, %) -> TextWriter; + <<: (TextWriter, %) -> TextWriter; coef: % -> SingleInteger; var: % -> Character; \end{verbatim} @@ -1519,7 +1519,7 @@ \begin{small} \begin{verbatim} - \<\<: (TextWriter, %) -> TextWriter; + <<: (TextWriter, %) -> TextWriter; \end{verbatim} \end{small} @@ -1533,7 +1533,7 @@ \begin{small} \begin{verbatim} - (stream: TextWriter) \<\< (poly: %): TextWriter + (stream: TextWriter) << (poly: %): TextWriter \end{verbatim} \end{small} @@ -1544,7 +1544,7 @@ \begin{small} \begin{verbatim} - stream \<\< poly \<\< newline; + stream << poly << newline; \end{verbatim} \end{small} @@ -1557,11 +1557,11 @@ \begin{small} \begin{verbatim} - (stream: TextWriter) \<\< (poly: %): TextWriter == { + (stream: TextWriter) << (poly: %): TextWriter == { size: SingleInteger := #(rep(poly)); for i in 1..(size-1) repeat - stream \<\< poly.i \<\< "^" \<\< (size - i) \<\< " + "; - stream \<\< poly.size + stream << poly.i << "^" << (size - i) << " + "; + stream << poly.size } \end{verbatim} \end{small} @@ -1585,11 +1585,11 @@ \begin{small} \begin{verbatim} - (stream: TextWriter) \<\< (poly: %): TextWriter == { + (stream: TextWriter) << (poly: %): TextWriter == { size: SingleInteger := #(rep(poly)); for i in 1..(size-1) repeat - stream \<\< poly.i \<\< "^" \<\< (size - i) \<\< " + "; - stream \<\< coef(poly.size) + stream << poly.i << "^" << (size - i) << " + "; + stream << coef(poly.size) } \end{verbatim} \end{small} @@ -1599,12 +1599,12 @@ \begin{small} \begin{verbatim} - (stream: TextWriter) \<\< (poly: %): TextWriter == { + (stream: TextWriter) << (poly: %): TextWriter == { size: SingleInteger := #(rep(poly)); for i in 1..(size-2) repeat - stream \<\< poly.i \<\< "^" \<\< (size-i) \<\< " + "; - stream \<\< poly.(size-1) \<\< " + " - stream \<\< coef(poly.size) + stream << poly.i << "^" << (size-i) << " + "; + stream << poly.(size-1) << " + " + stream << coef(poly.size) } \end{verbatim} \end{small} @@ -1629,19 +1629,19 @@ \begin{small} \begin{verbatim} - (stream: TextWriter) \<\< (poly: %): TextWriter == { + (stream: TextWriter) << (poly: %): TextWriter == { size: SingleInteger := #(rep(poly)); for i in 1..(size-2) repeat if not zero?(poly.i) then - stream \<\< poly.i \<\< "^" \<\< (size - i) \<\< " + "; + stream << poly.i << "^" << (size - i) << " + "; if not zero?(poly.(size-1)) then - stream \<\< poly.(size-1) \<\< " + "; + stream << poly.(size-1) << " + "; if zero?(poly.size) then - stream \<\< 0 + stream << 0 else - stream \<\< coef(poly.size) + stream << coef(poly.size) } \end{verbatim} \end{small} @@ -1662,20 +1662,20 @@ \begin{small} \begin{verbatim} - (stream: TextWriter) \<\< (poly: %): TextWriter == { + (stream: TextWriter) << (poly: %): TextWriter == { size: SingleInteger := #(rep(poly)); prefix: String := ""; for i in 1..(size-2) repeat if not zero?(poly.i) then { - stream \<\< prefix \<\< poly.i \<\< "^" \<\< (size - i); + stream << prefix << poly.i << "^" << (size - i); prefix := " + " } if not zero?(poly.(size-1)) then { - stream \<\< prefix \<\< poly.(size-1); + stream << prefix << poly.(size-1); prefix := " + " } if not zero?(poly.size) then - stream \<\< prefix \<\< coef(poly.size); + stream << prefix << coef(poly.size); stream } \end{verbatim} @@ -1735,23 +1735,23 @@ \begin{small} \begin{verbatim} - (stream: TextWriter) \<\< (poly: %): TextWriter == { - zero? poly => stream \<\< 0; + (stream: TextWriter) << (poly: %): TextWriter == { + zero? poly => stream << 0; size: SingleInteger := #(rep(poly)); prefix: String := ""; for i in 1..(size-2) repeat if not zero?(poly.i) then { - stream \<\< prefix \<\< poly.i \<\< "^" \<\< (size-i); + stream << prefix << poly.i << "^" << (size-i); prefix := " + " } if not zero?(poly.(size-1)) then { - stream \<\< prefix \<\< poly.(size-1); + stream << prefix << poly.(size-1); prefix := " + " } if not zero?(poly.size) then - stream \<\< prefix \<\< coef(poly.size); + stream << prefix << coef(poly.size); stream } \end{verbatim} @@ -1822,24 +1822,24 @@ abs(term: Term): Term == if negative? term then -term else term; - (stream: TextWriter) \<\< (poly: %): TextWriter == { - zero? poly => stream \<\< 0; + (stream: TextWriter) << (poly: %): TextWriter == { + zero? poly => stream << 0; size: SingleInteger := #(rep(poly)); prefix: String := if negative?(poly.1) then " - " else ""; for i in 1..(size-2) repeat if not zero?(poly.i) then { - stream \<\< prefix \<\< abs(poly.i); - stream \<\< "^" \<\< (size - i); + stream << prefix << abs(poly.i); + stream << "^" << (size - i); prefix := prefix(poly.(i+1)) } if not zero?(poly.(size-1)) then { - stream \<\< prefix \<\< abs(poly.(size-1)); + stream << prefix << abs(poly.(size-1)); prefix := prefix(poly.size) } if not zero?(poly.size) then - stream \<\< prefix \<\< abs(coef(poly.size)); + stream << prefix << abs(coef(poly.size)); stream } \end{verbatim} @@ -1887,7 +1887,7 @@ Term: BasicType with { new: (SingleInteger, Character) -> %; dispose!: % -> (); - \<\<: (TextWriter, %) -> TextWriter; + <<: (TextWriter, %) -> TextWriter; coef: % -> SingleInteger; var: % -> Character; zero?: % -> Boolean; @@ -1906,12 +1906,12 @@ dispose!(ignore: %):() == {} - (stream: TextWriter) \<\< (term: %): TextWriter == + (stream: TextWriter) << (term: %): TextWriter == if rep(term).coef = 1 then - stream \<\< rep(term).var + stream << rep(term).var else { - stream \<\< rep(term).coef; - stream \<\< "*" \<\< rep(term).var + stream << rep(term).coef; + stream << "*" << rep(term).var } coef(term: %): SingleInteger == rep(term).coef; @@ -1950,7 +1950,7 @@ Polynomial: with { new: List(Term) -> %; dispose!: % -> (); - \<\<: (TextWriter, %) -> TextWriter; + <<: (TextWriter, %) -> TextWriter; leadingMonomial: % -> Term; apply: (%, SingleInteger) -> Term; degree: % -> SingleInteger; @@ -1981,25 +1981,25 @@ abs(term: Term): Term == if negative? term then -term else term; - (stream: TextWriter) \<\< (poly: %): TextWriter == { - zero? poly => stream \<\< 0; + (stream: TextWriter) << (poly: %): TextWriter == { + zero? poly => stream << 0; size: SingleInteger := #(rep(poly)); sign: String := if negative?(poly.1) then " - " else ""; for i in 1..(size-2) repeat if not zero?(poly.i) then { - stream \<\< sign \<\< abs(poly.i); - stream \<\< "^" \<\< (size - i); + stream << sign << abs(poly.i); + stream << "^" << (size - i); sign := prefix(poly.(i + 1)) } if not zero?(poly.(size - 1)) then { - stream \<\< sign \<\< abs(poly.(size-1)); + stream << sign << abs(poly.(size-1)); sign := prefix(poly.size) } if not zero?(poly.size) then - stream \<\< sign \<\< abs(coef(poly.size)); + stream << sign << abs(coef(poly.size)); stream } @@ -2027,17 +2027,17 @@ term4 := new(0, var); term5 := new(-3, var); -- term6 := -term5; -print \<\< new(list(term5,term5,term5)) \<\< newline; -- negative signs -print \<\< new(list(term3,term2,term1)) \<\< newline; -- 1 elision -print \<\< new(list(term1,term2,term3)) \<\< newline; -print \<\< new(list(term4,term2,term3)) \<\< newline; -print \<\< new(list(term1,term4,term3)) \<\< newline; -print \<\< new(list(term4,term4,term3)) \<\< newline; -print \<\< new(list(term1,term2,term4)) \<\< newline; -- bad leading term -print \<\< new(list(term4,term2,term4)) \<\< newline; -- bad leading term -print \<\< new(list(term1,term4,term4)) \<\< newline; -- bad leading term -print \<\< new(list(term4,term4,term4)) \<\< newline; -- bad leading term -print \<\< new(list())@Polynomial \<\< newline; -- true zero polynomial +print << new(list(term5,term5,term5)) << newline; -- negative signs +print << new(list(term3,term2,term1)) << newline; -- 1 elision +print << new(list(term1,term2,term3)) << newline; +print << new(list(term4,term2,term3)) << newline; +print << new(list(term1,term4,term3)) << newline; +print << new(list(term4,term4,term3)) << newline; +print << new(list(term1,term2,term4)) << newline; -- bad leading term +print << new(list(term4,term2,term4)) << newline; -- bad leading term +print << new(list(term1,term4,term4)) << newline; -- bad leading term +print << new(list(term4,term4,term4)) << newline; -- bad leading term +print << new(list())@Polynomial << newline; -- true zero polynomial #endif -- TEST @@ -2176,7 +2176,7 @@ \begin{small} \begin{verbatim} -print \<\< new(list(term5,term5,term5)) \<\< newline; -- negative signs +print << new(list(term5,term5,term5)) << newline; -- negative signs \end{verbatim} \end{small} @@ -2184,7 +2184,7 @@ \begin{small} \begin{verbatim} -print \<\< new(list(term3,term2,term1)) \<\< newline; -- 1 elision +print << new(list(term3,term2,term1)) << newline; -- 1 elision \end{verbatim} \end{small} @@ -2192,14 +2192,14 @@ \begin{small} \begin{verbatim} -print \<\< new(list(term1,term2,term3)) \<\< newline; -print \<\< new(list(term4,term2,term3)) \<\< newline; -print \<\< new(list(term1,term4,term3)) \<\< newline; -print \<\< new(list(term4,term4,term3)) \<\< newline; -print \<\< new(list(term1,term2,term4)) \<\< newline; -- bad leading term -print \<\< new(list(term4,term2,term4)) \<\< newline; -- bad leading term -print \<\< new(list(term1,term4,term4)) \<\< newline; -- bad leading term -print \<\< new(list(term4,term4,term4)) \<\< newline; -- bad leading term +print << new(list(term1,term2,term3)) << newline; +print << new(list(term4,term2,term3)) << newline; +print << new(list(term1,term4,term3)) << newline; +print << new(list(term4,term4,term3)) << newline; +print << new(list(term1,term2,term4)) << newline; -- bad leading term +print << new(list(term4,term2,term4)) << newline; -- bad leading term +print << new(list(term1,term4,term4)) << newline; -- bad leading term +print << new(list(term4,term4,term4)) << newline; -- bad leading term \end{verbatim} \end{small} @@ -2207,8 +2207,8 @@ \begin{small} \begin{verbatim} -print \<\< new(list())@Polynomial \<\< newline; -- true zero polynomial -print \<\< address@hidden \<\< newline; -- true zero polynomial +print << new(list())@Polynomial << newline; -- true zero polynomial +print << address@hidden << newline; -- true zero polynomial \end{verbatim} \end{small} @@ -2216,10 +2216,10 @@ \begin{small} \begin{verbatim} -print \<\< term1 + term2 \<\< newline; -print \<\< term1 - term2 \<\< newline; -print \<\< term2 - term1 \<\< newline; -print \<\< term1 - term1 \<\< newline; +print << term1 + term2 << newline; +print << term1 - term2 << newline; +print << term2 - term1 << newline; +print << term1 - term1 << newline; \end{verbatim} \end{small} %#endif --example5 @@ -2236,7 +2236,7 @@ Term: BasicType with { new: (SingleInteger, Character) -> %; dispose!: % -> (); - \<\<: (TextWriter, %) -> TextWriter; + <<: (TextWriter, %) -> TextWriter; coef: % -> SingleInteger; var: % -> Character; zero?: % -> Boolean; @@ -2255,12 +2255,12 @@ dispose!(ignore: %):() == {} - (stream: TextWriter) \<\< (term: %): TextWriter == + (stream: TextWriter) << (term: %): TextWriter == if rep(term).coef = 1 then - stream \<\< rep(term).var + stream << rep(term).var else { - stream \<\< rep(term).coef; - stream \<\< "*" \<\< rep(term).var + stream << rep(term).coef; + stream << "*" << rep(term).var } coef(term: %): SingleInteger == rep(term).coef; @@ -2299,7 +2299,7 @@ Polynomial: with { new: List(Term) -> %; dispose!: % -> (); - \<\<: (TextWriter, %) -> TextWriter; + <<: (TextWriter, %) -> TextWriter; leadingMonomial: % -> Term; apply: (%, SingleInteger) -> Term; degree: % -> SingleInteger; @@ -2332,8 +2332,8 @@ abs(term: Term): Term == if negative? term then -term else term; - (stream: TextWriter) \<\< (poly: %): TextWriter == { - zero? poly => stream \<\< address@hidden; + (stream: TextWriter) << (poly: %): TextWriter == { + zero? poly => stream << address@hidden; size: SingleInteger := #(rep(poly)); @@ -2342,16 +2342,16 @@ for i in 1..(size - 2) repeat if not zero?(poly.i) then { - stream \<\< sign \<\< abs(poly.i); - stream \<\< "^" \<\< (size - i); + stream << sign << abs(poly.i); + stream << "^" << (size - i); sign := prefix(poly.(i+1)) } if not zero?(poly.(size-1)) then { - stream \<\< sign \<\< abs(poly.(size-1)); + stream << sign << abs(poly.(size-1)); sign := prefix(poly.size) } if not zero?(poly.size) then - stream \<\< sign \<\< abs(coef(poly.size)); + stream << sign << abs(coef(poly.size)); stream } @@ -2653,7 +2653,7 @@ Term(CoefType: OrderedRing): BasicType with { new: (CoefType, Character) -> %; dispose!: % -> (); - \<\<: (TextWriter, %) -> TextWriter; + <<: (TextWriter, %) -> TextWriter; coef: % -> CoefType; var: % -> Character; zero?: % -> Boolean; @@ -2672,12 +2672,12 @@ dispose!(ignore: %):() == {} -- undefined - (stream: TextWriter) \<\< (term: %): TextWriter == + (stream: TextWriter) << (term: %): TextWriter == if rep(term).coef = 1 then - stream \<\< rep(term).var + stream << rep(term).var else { - stream \<\< rep(term).coef; - stream \<\< "*" \<\< rep(term).var + stream << rep(term).coef; + stream << "*" << rep(term).var } coef(term: %): CoefType == rep(term).coef; @@ -2717,9 +2717,9 @@ import from Character; import from Term SingleInteger; -print \<\< new(0$SingleInteger,char "x") \<\< newline; +print << new(0$SingleInteger,char "x") << newline; import from Term Float; -print \<\< new(0$Float,char "x") \<\< newline; +print << new(0$Float,char "x") << newline; #endif -- TEST