earlw@pesnta.UUCP (Earl Wallace) (06/13/85)
#! /bin/sh # # This is an another posting of the Little Smalltalk source, the last posting # of this source went out in 5 parts and they were too big (>200k) for most # sites so I redid the whole mess to keep the files around the 50k range. # # The complete set is now 20 parts. # # P.S. - If you don't receive all 20 parts within 5 days, drop me a line. # Also, I have the Rand sources of May 1984, if someone has a more # updated copy, I'll be happy to post them (or YOU can post them :-)) # # -earlw@pesnta # #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # prelude/boolean.p # prelude/boolean.st # prelude/bytearray.p # prelude/bytearray.st # prelude/char.p # prelude/char.st # prelude/class.p # prelude/class.st # prelude/collection.p # prelude/collection.st # prelude/dictionary.p # prelude/dictionary.st # prelude/false.p # prelude/false.st # prelude/file.p # prelude/file.st # prelude/float.p # prelude/float.st # prelude/init # prelude/integer.p # prelude/integer.st # prelude/interval.p # prelude/interval.st # prelude/kcollection.p # prelude/kcollection.st # prelude/larray.p # prelude/larray.st # prelude/list.p # prelude/list.st # prelude/magnitude.p # prelude/magnitude.st # prelude/nil.p # prelude/nil.st # prelude/number.p # This archive created: Thu Jun 13 11:32:04 1985 # By: Earl Wallace (Perkin-Elmer Data Systems Group / Customer Service) export PATH; PATH=/bin:$PATH if test -f 'prelude/boolean.p' then echo shar: will not over-write existing file "'prelude/boolean.p'" else cat << \SHAR_EOF > 'prelude/boolean.p' temp <- <primitive 110 6 > <primitive 112 temp 1 " xor: " \ #( #[ 32 33 182 243 245] \ #( ) ) > <primitive 112 temp 2 " eqv: " \ #( #[ 32 33 181 243 245] \ #( ) ) > <primitive 112 temp 3 " or: " \ #( #[ 32 251 2 33 165 243 245] \ #( ) ) > <primitive 112 temp 4 " and: " \ #( #[ 32 252 2 33 165 243 245] \ #( ) ) > <primitive 112 temp 5 " | " \ #( #[ 32 251 1 33 243 245] \ #( ) ) > <primitive 112 temp 6 " & " \ #( #[ 32 252 1 33 243 245] \ #( ) ) > <primitive 98 #Boolean \ <primitive 97 #Boolean #Object #/u/smalltalk/prelude/boolean.st \ #( ) \ #( #xor: #eqv: #or: #and: #| #& ) \ temp 2 3 > > SHAR_EOF if test 634 -ne "`wc -c < 'prelude/boolean.p'`" then echo shar: error transmitting "'prelude/boolean.p'" '(should have been 634 characters)' fi fi # end of overwriting check if test -f 'prelude/boolean.st' then echo shar: will not over-write existing file "'prelude/boolean.st'" else cat << \SHAR_EOF > 'prelude/boolean.st' Class Boolean [ & aBoolean ^ self and: [aBoolean] | | aBoolean ^ self or: [aBoolean] | and: aBlock ^ self and: [aBlock value] | or: aBlock ^ self or: [aBlock value] | eqv: aBoolean ^ self == aBoolean | xor: aBoolean ^ self ~~ aBoolean ] SHAR_EOF if test 297 -ne "`wc -c < 'prelude/boolean.st'`" then echo shar: error transmitting "'prelude/boolean.st'" '(should have been 297 characters)' fi fi # end of overwriting check if test -f 'prelude/bytearray.p' then echo shar: will not over-write existing file "'prelude/bytearray.p'" else cat << \SHAR_EOF > 'prelude/bytearray.p' temp <- <primitive 110 5 > <primitive 112 temp 1 " size " \ #( #[ 32 250 1 117 243 245] \ #( ) ) > <primitive 112 temp 2 " printString " \ #( #[ 48 113 81 32 163 178 225 2 13 33 32 34 177 169 11 \ 17 49 11 17 241 113 243 179 242 33 50 11 17 243 245 \ ] \ #( '#[ ' ' ' ']' ) ) > <primitive 112 temp 3 " at:put: " \ #( #[ 32 33 34 250 3 119 242 245] \ #( ) ) > <primitive 112 temp 4 " at: " \ #( #[ 32 33 250 2 118 243 245] \ #( ) ) > <primitive 112 temp 5 " new: " \ #( #[ 33 250 1 116 243 245] \ #( ) ) > <primitive 98 #ByteArray \ <primitive 97 #ByteArray #ArrayedCollection #/u/smalltalk/prelude/bytearray.st \ #( ) \ #( #size #printString #at:put: #at: #new: ) \ temp 3 6 > > SHAR_EOF if test 712 -ne "`wc -c < 'prelude/bytearray.p'`" then echo shar: error transmitting "'prelude/bytearray.p'" '(should have been 712 characters)' fi fi # end of overwriting check if test -f 'prelude/bytearray.st' then echo shar: will not over-write existing file "'prelude/bytearray.st'" else cat << \SHAR_EOF > 'prelude/bytearray.st' Class ByteArray :ArrayedCollection [ new: size ^ <primitive 116 size> | at: index ^ <primitive 118 self index> | at: index put: value <primitive 119 self index value> | printString | str | str <- '#[ '. (1 to: self size) do: [:i | str <- str , (self at: i) printString , ' ']. ^ str , ']' | size ^ <primitive 117 self> ] SHAR_EOF if test 344 -ne "`wc -c < 'prelude/bytearray.st'`" then echo shar: error transmitting "'prelude/bytearray.st'" '(should have been 344 characters)' fi fi # end of overwriting check if test -f 'prelude/char.p' then echo shar: will not over-write existing file "'prelude/char.p'" else cat << \SHAR_EOF > 'prelude/char.p' temp <- <primitive 110 18 > <primitive 112 temp 1 " printString " \ #( #[ 48 32 250 1 58 11 17 243 245] \ #( '$' ) ) > <primitive 112 temp 2 " isVowel " \ #( #[ 32 250 1 51 243 245] \ #( ) ) > <primitive 112 temp 3 " isUppercase " \ #( #[ 32 48 49 218 243 245] \ #( $A $Z ) ) > <primitive 112 temp 4 " isSeparator " \ #( #[ 32 250 1 55 243 245] \ #( ) ) > <primitive 112 temp 5 " isLowercase " \ #( #[ 32 48 49 218 243 245] \ #( $a $z ) ) > <primitive 112 temp 6 " isLetter " \ #( #[ 32 10 28 251 3 32 10 29 243 245] \ #( ) ) > <primitive 112 temp 7 " isDigit " \ #( #[ 32 48 49 218 243 245] \ #( $0 $9 ) ) > <primitive 112 temp 8 " isAlphaNumeric " \ #( #[ 32 250 1 56 243 245] \ #( ) ) > <primitive 112 temp 9 " digitValue " \ #( #[ 32 250 1 50 241 113 161 247 3 32 48 188 242 33 243 \ 245] \ #( 'digitValue on nondigit char' ) ) > <primitive 112 temp 10 " compareError " \ #( #[ 32 48 188 243 245] \ #( 'char cannot be compared to non char' ) ) > <primitive 112 temp 11 " asString " \ #( #[ 32 250 1 58 243 245] \ #( ) ) > <primitive 112 temp 12 " asUppercase " \ #( #[ 32 250 1 53 247 6 32 250 1 57 248 2 242 32 243 \ 245] \ #( ) ) > <primitive 112 temp 13 " asLowercase " \ #( #[ 32 250 1 54 247 6 32 250 1 57 248 2 242 32 243 \ 245] \ #( ) ) > <primitive 112 temp 14 " asciiValue " \ #( #[ 32 250 1 59 243 245] \ #( ) ) > <primitive 112 temp 15 " > " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 43 248 4 242 \ 32 10 19 243 245] \ #( ) ) > <primitive 112 temp 16 " = " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 46 248 4 242 \ 32 10 19 243 245] \ #( ) ) > <primitive 112 temp 17 " < " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 42 248 4 242 \ 32 10 19 243 245] \ #( ) ) > <primitive 112 temp 18 " == " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 46 248 2 242 \ 92 243 245] \ #( ) ) > <primitive 98 #Char \ <primitive 97 #Char #Magnitude #/u/smalltalk/prelude/char.st \ #( ) \ #( #printString #isVowel #isUppercase #isSeparator #isLowercase #isLetter #isDigit #isAlphaNumeric #digitValue #compareError #asString #asUppercase #asLowercase #asciiValue #> #= #< #== ) \ temp 2 4 > > SHAR_EOF if test 2174 -ne "`wc -c < 'prelude/char.p'`" then echo shar: error transmitting "'prelude/char.p'" '(should have been 2174 characters)' fi fi # end of overwriting check if test -f 'prelude/char.st' then echo shar: will not over-write existing file "'prelude/char.st'" else cat << \SHAR_EOF > 'prelude/char.st' Class Char :Magnitude [ == aChar ^ <primitive 6 self aChar> ifTrue: [<primitive 46 self aChar>] ifFalse: [false] | < aChar ^ <primitive 6 self aChar> ifTrue: [<primitive 42 self aChar>] ifFalse: [self compareError] | = aChar ^ <primitive 6 self aChar> ifTrue: [<primitive 46 self aChar>] ifFalse: [self compareError] | > aChar ^ <primitive 6 self aChar> ifTrue: [<primitive 43 self aChar>] ifFalse: [self compareError] | asciiValue ^ <primitive 59 self> | asLowercase ^ <primitive 54 self> ifTrue: [<primitive 57 self>] ifFalse: [self] | asUppercase ^ <primitive 53 self> ifTrue: [<primitive 57 self>] ifFalse: [self] | asString ^ <primitive 58 self> | compareError ^ self error: 'char cannot be compared to non char' | digitValue | i | ((i <- <primitive 50 self>) isNil) ifTrue: [self error: 'digitValue on nondigit char']. ^ i | isAlphaNumeric ^ <primitive 56 self> | isDigit ^ self between: $0 and: $9 | isLetter ^ self isLowercase or: [self isUppercase] | isLowercase ^ self between: $a and: $z | isSeparator ^ <primitive 55 self> | isUppercase ^ (self between: $A and: $Z) | isVowel ^ <primitive 51 self> | printString ^ '$' , <primitive 58 self> ] SHAR_EOF if test 1255 -ne "`wc -c < 'prelude/char.st'`" then echo shar: error transmitting "'prelude/char.st'" '(should have been 1255 characters)' fi fi # end of overwriting check if test -f 'prelude/class.p' then echo shar: will not over-write existing file "'prelude/class.p'" else cat << \SHAR_EOF > 'prelude/class.p' temp <- <primitive 110 10 > <primitive 112 temp 1 " view " \ #( #[ 32 250 1 156 242 245] \ #( ) ) > <primitive 112 temp 2 " variables " \ #( #[ 32 250 1 158 243 245] \ #( ) ) > <primitive 112 temp 3 " superClass " \ #( #[ 32 250 1 151 243 245] \ #( ) ) > <primitive 112 temp 4 " respondsTo: " \ #( #[ 32 114 34 162 247 18 34 33 250 2 155 247 2 91 243 \ 242 34 10 46 241 114 242 249 22 242 92 243 245] \ #( ) ) > <primitive 112 temp 5 " respondsTo " \ #( #[ 32 250 1 154 242 245] \ #( ) ) > <primitive 112 temp 6 " printString " \ #( #[ 32 250 1 152 243 245] \ #( ) ) > <primitive 112 temp 7 " new: " \ #( #[ 32 250 1 151 114 34 250 1 3 247 4 34 160 241 115 \ 242 32 35 250 2 153 115 32 48 250 2 155 247 5 35 \ 33 176 241 115 242 35 243 245] \ #( #new: ) ) > <primitive 112 temp 8 " new " \ #( #[ 32 250 1 151 113 33 250 1 3 247 4 33 160 241 114 \ 242 32 34 250 2 153 114 32 48 250 2 155 247 4 34 \ 160 241 114 242 34 243 245] \ #( #new ) ) > <primitive 112 temp 9 " list " \ #( #[ 32 250 1 157 242 245] \ #( ) ) > <primitive 112 temp 10 " edit " \ #( #[ 32 250 1 150 242 245] \ #( ) ) > <primitive 98 #Class \ <primitive 97 #Class #Object #/u/smalltalk/prelude/class.st \ #( ) \ #( #view #variables #superClass #respondsTo: #respondsTo #printString #new: #new #list #edit ) \ temp 4 4 > > SHAR_EOF if test 1351 -ne "`wc -c < 'prelude/class.p'`" then echo shar: error transmitting "'prelude/class.p'" '(should have been 1351 characters)' fi fi # end of overwriting check if test -f 'prelude/class.st' then echo shar: will not over-write existing file "'prelude/class.st'" else cat << \SHAR_EOF > 'prelude/class.st' Class Class [ edit <primitive 150 self> | list <primitive 157 self> | new | superclass newinstance | superclass <- <primitive 151 self>. <primitive 3 superclass > ifTrue: [newinstance <- superclass new ]. newinstance <- <primitive 153 self newinstance >. <primitive 155 self #new > ifTrue: [newinstance <- newinstance new]. ^ newinstance | new: aValue | superclass newinstance | superclass <- <primitive 151 self>. <primitive 3 superclass > ifTrue: [newinstance <- superclass new ]. newinstance <- <primitive 153 self newinstance >. <primitive 155 self #new: > ifTrue: [newinstance <- newinstance new: aValue ]. ^ newinstance | printString ^ <primitive 152 self > | respondsTo <primitive 154 self> | respondsTo: aSymbol | aClass | aClass <- self. [aClass notNil] whileTrue: [ <primitive 155 aClass aSymbol> ifTrue: [ ^ true ]. aClass <- aClass superClass ]. ^ false | superClass ^ <primitive 151 self> | variables ^ <primitive 158 self> | view <primitive 156 self> ] SHAR_EOF if test 1048 -ne "`wc -c < 'prelude/class.st'`" then echo shar: error transmitting "'prelude/class.st'" '(should have been 1048 characters)' fi fi # end of overwriting check if test -f 'prelude/collection.p' then echo shar: will not over-write existing file "'prelude/collection.p'" else cat << \SHAR_EOF > 'prelude/collection.p' temp <- <primitive 110 23 > <primitive 112 temp 1 " size " \ #( #[ 80 113 32 225 2 6 33 81 192 241 113 243 179 242 33 \ 243 245] \ #( ) ) > <primitive 112 temp 2 " shallowCopy " \ #( #[ 5 48 160 113 32 225 2 5 33 34 11 22 243 179 242 \ 32 33 191 243 245] \ #( ) ) > <primitive 112 temp 3 " select: " \ #( #[ 32 32 164 160 226 2 11 33 35 180 247 3 34 35 189 \ 242 34 243 215 243 245] \ #( ) ) > <primitive 112 temp 4 " remove:ifAbsent: " \ #( #[ 32 33 11 30 247 6 32 33 11 39 248 3 242 34 165 \ 243 245] \ #( ) ) > <primitive 112 temp 5 " remove: " \ #( #[ 32 33 224 4 32 48 188 244 216 242 33 243 245] \ #( 'attempt to remove object not found in collection' ) ) > <primitive 112 temp 6 " reject: " \ #( #[ 32 225 2 5 33 34 180 172 243 11 44 243 245] \ #( ) ) > <primitive 112 temp 7 " printString " \ #( #[ 32 32 164 169 48 11 17 226 1 9 33 49 11 17 34 \ 169 11 17 243 215 50 11 17 243 245] \ #( ' (' ' ' ' )' ) ) > <primitive 112 temp 8 " occurrencesOf: " \ #( #[ 32 80 226 2 13 35 33 201 247 5 34 81 192 248 2 \ 242 34 243 215 243 245] \ #( ) ) > <primitive 112 temp 9 " isEmpty " \ #( #[ 32 163 80 201 243 245] \ #( ) ) > <primitive 112 temp 10 " inject:into: " \ #( #[ 33 115 32 225 4 7 34 35 36 211 241 115 243 179 242 \ 35 243 245] \ #( ) ) > <primitive 112 temp 11 " includes: " \ #( #[ 32 225 2 8 34 33 201 247 2 91 244 243 179 242 92 \ 243 245] \ #( ) ) > <primitive 112 temp 12 " first " \ #( #[ 32 48 188 243 245] \ #( 'subclass should implement first' ) ) > <primitive 112 temp 13 " detect:ifAbsent: " \ #( #[ 32 225 3 8 33 35 180 247 2 35 244 243 179 242 34 \ 165 243 245] \ #( ) ) > <primitive 112 temp 14 " detect: " \ #( #[ 32 33 224 4 32 48 188 243 223 243 245] \ #( 'no object found matching detect' ) ) > <primitive 112 temp 15 " deepCopy " \ #( #[ 5 48 160 113 32 225 2 7 33 34 10 20 11 22 243 \ 179 242 32 33 191 243 245] \ #( ) ) > <primitive 112 temp 16 " collect: " \ #( #[ 32 32 164 160 226 2 8 34 33 35 180 189 242 34 243 \ 215 243 245] \ #( ) ) > <primitive 112 temp 17 " coerce: " \ #( #[ 32 160 114 33 225 3 4 34 35 189 243 179 242 34 243 \ 245] \ #( ) ) > <primitive 112 temp 18 " asString " \ #( #[ 5 58 32 163 176 241 81 32 163 32 131 0 242 243 245 \ ] \ #( #replaceFrom:to:with: ) ) > <primitive 112 temp 19 " asList " \ #( #[ 5 48 160 32 11 20 243 245] \ #( ) ) > <primitive 112 temp 20 " asSet " \ #( #[ 5 57 160 32 11 19 243 245] \ #( ) ) > <primitive 112 temp 21 " asBag " \ #( #[ 5 32 160 32 11 19 243 245] \ #( ) ) > <primitive 112 temp 22 " asArray " \ #( #[ 5 30 32 163 176 241 81 32 163 32 131 0 242 243 245 \ ] \ #( #replaceFrom:to:with: ) ) > <primitive 112 temp 23 " addAll: " \ #( #[ 33 225 2 4 32 34 189 243 179 242 245] \ #( ) ) > <primitive 98 #Collection \ <primitive 97 #Collection #Object #/u/smalltalk/prelude/collection.st \ #( ) \ #( #size #shallowCopy #select: #remove:ifAbsent: #remove: #reject: #printString #occurrencesOf: #isEmpty #inject:into: #includes: #first #detect:ifAbsent: #detect: #deepCopy #collect: #coerce: #asString #asList #asSet #asBag #asArray #addAll: ) \ temp 5 7 > > SHAR_EOF if test 3180 -ne "`wc -c < 'prelude/collection.p'`" then echo shar: error transmitting "'prelude/collection.p'" '(should have been 3180 characters)' fi fi # end of overwriting check if test -f 'prelude/collection.st' then echo shar: will not over-write existing file "'prelude/collection.st'" else cat << \SHAR_EOF > 'prelude/collection.st' Class Collection [ addAll: aCollection aCollection do: [:x | self add: x ] | asArray ^ Array new: self size ; replaceFrom: 1 to: self size with: self | asBag ^ Bag new addAll: self | asSet ^ Set new addAll: self | asList ^ List new addAllLast: self | asString ^ String new: self size ; replaceFrom: 1 to: self size with: self | coerce: aCollection | newobj | newobj <- self new. aCollection do: [:x | newobj add: x]. ^ newobj | collect: aBlock ^ self inject: self class new into: [:x :y | x add: (aBlock value: y). x ] | deepCopy | newobj | newobj <- List new . self do: [:x | newobj addLast: x copy ]. ^ self coerce: newobj | detect: aBlock ^ self detect: aBlock ifAbsent: [self error: 'no object found matching detect'] | detect: aBlock ifAbsent: exceptionBlock self do: [:x | (aBlock value: x) ifTrue: [^ x]]. ^ exceptionBlock value | first ^ self error: 'subclass should implement first' | includes: anObject self do: [:x | (x = anObject) ifTrue: [^ true]]. ^ false | inject: thisValue into: binaryBlock | last | last <- thisValue. self do: [:x | last <- binaryBlock value: last value: x]. ^ last | isEmpty ^ (self size = 0) | occurrencesOf: anObject ^ self inject: 0 into: [:x :y | (y = anObject) ifTrue: [x + 1] ifFalse: [x] ] | printString ^ ( self inject: self class printString , ' (' into: [:x :y | x , ' ' , y printString]), ' )' | reject: aBlock ^ self select: [:x | (aBlock value: x) not ] | remove: oldObject self remove: oldObject ifAbsent: [^ self error: 'attempt to remove object not found in collection' ]. ^ oldObject | remove: oldObject ifAbsent: exceptionBlock ^ (self includes: oldObject) ifTrue: [self remove: oldObject] ifFalse: exceptionBlock | select: aBlock ^ self inject: self class new into: [:x :y | (aBlock value: y) ifTrue: [x add: y]. x] | shallowCopy | newobj | newobj <- List new . self do: [:x | newobj addLast: x]. ^ self coerce: newobj | size | i | i <- 0. self do: [:x | i <- i + 1 ]. ^ i ] SHAR_EOF if test 2501 -ne "`wc -c < 'prelude/collection.st'`" then echo shar: error transmitting "'prelude/collection.st'" '(should have been 2501 characters)' fi fi # end of overwriting check if test -f 'prelude/dictionary.p' then echo shar: will not over-write existing file "'prelude/dictionary.p'" else cat << \SHAR_EOF > 'prelude/dictionary.p' temp <- <primitive 110 12 > <primitive 112 temp 1 " checkBucket: " \ #( #[ 16 33 241 97 177 241 98 161 247 2 93 243 242 18 166 \ 243 245] \ #( ) ) > <primitive 112 temp 2 " currentKey " \ #( #[ 18 162 247 11 18 10 21 113 33 162 247 3 33 10 49 \ 243 245] \ #( ) ) > <primitive 112 temp 3 " printString " \ #( #[ 32 32 164 169 48 11 17 226 1 17 33 32 171 169 11 \ 17 49 11 17 34 169 11 17 50 11 17 243 215 51 11 \ 17 243 245] \ #( ' ( ' ' @ ' ' ' ')' ) ) > <primitive 112 temp 4 " next " \ #( #[ 18 167 241 113 162 247 4 33 10 50 243 242 17 5 17 \ 199 247 20 17 81 192 97 32 17 11 24 241 113 162 247 \ 4 33 10 50 243 242 249 26 242 93 243 245] \ #( ) ) > <primitive 112 temp 5 " first " \ #( #[ 81 5 17 178 225 2 14 32 34 11 24 241 113 162 247 \ 4 33 10 50 244 243 179 242 93 243 245] \ #( ) ) > <primitive 112 temp 6 " findAssociation:inList: " \ #( #[ 34 225 3 10 35 10 49 33 201 247 2 35 244 243 179 \ 242 93 243 245] \ #( ) ) > <primitive 112 temp 7 " removeKey:ifAbsent: " \ #( #[ 32 33 11 28 115 32 33 35 222 116 36 161 247 3 34 \ 165 243 242 35 36 224 3 34 165 244 216 10 50 243 245 \ ] \ #( ) ) > <primitive 112 temp 8 " at:ifAbsent: " \ #( #[ 32 33 11 28 115 32 33 35 222 116 36 161 247 3 34 \ 165 243 242 36 10 50 243 245] \ #( ) ) > <primitive 112 temp 9 " at:put: " \ #( #[ 32 33 11 28 115 32 33 35 222 116 36 161 247 15 5 \ 53 160 33 11 50 34 11 51 116 35 36 189 248 5 242 \ 36 34 11 51 242 34 243 245] \ #( ) ) > <primitive 112 temp 10 " getList: " \ #( #[ 32 33 11 29 115 16 35 177 114 34 161 247 8 5 48 \ 160 114 16 35 34 208 242 34 243 245] \ #( ) ) > <primitive 112 temp 11 " hashNumber: " \ #( #[ 33 250 1 5 16 163 195 81 192 243 245] \ #( ) ) > <primitive 112 temp 12 " new " \ #( #[ 5 30 5 17 176 96 245] \ #( ) ) > <primitive 98 #Dictionary \ <primitive 97 #Dictionary #KeyedCollection #/u/smalltalk/prelude/dictionary.st \ #( #hashTable #currentBucket #currentList ) \ #( #checkBucket: #currentKey #printString #next #first #findAssociation:inList: #removeKey:ifAbsent: #at:ifAbsent: #at:put: #getList: #hashNumber: #new ) \ temp 5 6 > > SHAR_EOF if test 2139 -ne "`wc -c < 'prelude/dictionary.p'`" then echo shar: error transmitting "'prelude/dictionary.p'" '(should have been 2139 characters)' fi fi # end of overwriting check if test -f 'prelude/dictionary.st' then echo shar: will not over-write existing file "'prelude/dictionary.st'" else cat << \SHAR_EOF > 'prelude/dictionary.st' " Dictionarys are implemented using Points in order to reduce the number of classes in the standard prelude this also has the advantage of making the output appear in key @ value form " Class Dictionary :KeyedCollection | hashTable currentBucket currentList | [ new hashTable <- Array new: 17 | hashNumber: aKey ^ ( <primitive 5 aKey> \\ hashTable size) + 1 | getList: aKey | list bucketNumber | bucketNumber <- self hashNumber: aKey. list <- hashTable at: bucketNumber. (list isNil) ifTrue: [list <- List new. hashTable at: bucketNumber put: list]. ^ list | at: aKey put: anObject | list anAssoc | list <- self getList: aKey. anAssoc <- self findAssociation: aKey inList: list. (anAssoc isNil) ifTrue: [anAssoc <- (Point new x: aKey) y: anObject. list add: anAssoc] ifFalse: [anAssoc y: anObject]. ^ anObject | at: aKey ifAbsent: exceptionBlock | list anAssoc | list <- self getList: aKey. anAssoc <- self findAssociation: aKey inList: list. (anAssoc isNil) ifTrue: [^ exceptionBlock value]. ^ anAssoc y | removeKey: aKey ifAbsent: exceptionBlock | list anAssoc| list <- self getList: aKey. anAssoc <- self findAssociation: aKey inList: list. (anAssoc isNil) ifTrue: [^ exceptionBlock value]. ^ ( list remove: anAssoc ifAbsent: [ ^ exceptionBlock value ] ) y | findAssociation: aKey inList: linkedList linkedList do: [:item | (item x = aKey) ifTrue: [^ item]]. ^ nil | first | item | (1 to: 17) do: [:i | ((item <- self checkBucket: i) notNil) ifTrue: [ ^ item y] ] . ^ nil | next | item | ((item <- currentList next) notNil) ifTrue: [ ^ item y ]. [currentBucket < 17] whileTrue: [currentBucket <- currentBucket + 1. ((item <- self checkBucket: currentBucket) notNil) ifTrue: [ ^ item y ] ]. ^ nil | printString ^ (self inject: (self class printString) , ' ( ' into: [ :aString :aValue | aString , self currentKey printString , ' @ ' , aValue printString , ' ' ] ) , ')' | currentKey | clist| ^ (currentList notNil) ifTrue: [clist <- currentList current. (clist notNil) ifTrue: [clist x] ] | checkBucket: bucketNumber ((currentList <- hashTable at: (currentBucket <- bucketNumber)) isNil) ifTrue: [ ^ nil ]. ^ currentList first ] SHAR_EOF if test 2333 -ne "`wc -c < 'prelude/dictionary.st'`" then echo shar: error transmitting "'prelude/dictionary.st'" '(should have been 2333 characters)' fi fi # end of overwriting check if test -f 'prelude/false.p' then echo shar: will not over-write existing file "'prelude/false.p'" else cat << \SHAR_EOF > 'prelude/false.p' temp <- <primitive 110 5 > <primitive 112 temp 1 " not " \ #( #[ 91 243 245] \ #( ) ) > <primitive 112 temp 2 " ifFalse: " \ #( #[ 33 165 243 245] \ #( ) ) > <primitive 112 temp 3 " ifTrue: " \ #( #[ 93 243 245] \ #( ) ) > <primitive 112 temp 4 " ifFalse:ifTrue: " \ #( #[ 33 165 243 245] \ #( ) ) > <primitive 112 temp 5 " ifTrue:ifFalse: " \ #( #[ 34 165 243 245] \ #( ) ) > <primitive 98 #False \ <primitive 97 #False #Boolean #/u/smalltalk/prelude/false.st \ #( ) \ #( #not #ifFalse: #ifTrue: #ifFalse:ifTrue: #ifTrue:ifFalse: ) \ temp 3 2 > > SHAR_EOF if test 580 -ne "`wc -c < 'prelude/false.p'`" then echo shar: error transmitting "'prelude/false.p'" '(should have been 580 characters)' fi fi # end of overwriting check if test -f 'prelude/false.st' then echo shar: will not over-write existing file "'prelude/false.st'" else cat << \SHAR_EOF > 'prelude/false.st' Class False :Boolean [ ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock ^ falseAlternativeBlock value ! ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock ^ falseAlternativeBlock value ! ifTrue: trueAlternativeBlock ^ nil ! ifFalse: falseAlternativeBlock ^ falseAlternativeBlock value ! not ^ true ] SHAR_EOF if test 436 -ne "`wc -c < 'prelude/false.st'`" then echo shar: error transmitting "'prelude/false.st'" '(should have been 436 characters)' fi fi # end of overwriting check if test -f 'prelude/file.p' then echo shar: will not over-write existing file "'prelude/file.p'" else cat << \SHAR_EOF > 'prelude/file.p' temp <- <primitive 110 13 > <primitive 112 temp 1 " write: " \ #( #[ 32 33 250 2 132 243 245] \ #( ) ) > <primitive 112 temp 2 " size " \ #( #[ 32 250 1 134 243 245] \ #( ) ) > <primitive 112 temp 3 " read " \ #( #[ 32 250 1 131 243 245] \ #( ) ) > <primitive 112 temp 4 " open:for: " \ #( #[ 32 33 34 250 3 130 242 245] \ #( ) ) > <primitive 112 temp 5 " open: " \ #( #[ 32 33 48 250 3 130 242 245] \ #( 'r' ) ) > <primitive 112 temp 6 " next " \ #( #[ 32 10 36 243 245] \ #( ) ) > <primitive 112 temp 7 " first " \ #( #[ 32 80 177 243 245] \ #( ) ) > <primitive 112 temp 8 " currentKey " \ #( #[ 32 250 1 136 243 245] \ #( ) ) > <primitive 112 temp 9 " at:put: " \ #( #[ 32 33 250 2 135 242 32 34 11 49 243 245] \ #( ) ) > <primitive 112 temp 10 " at: " \ #( #[ 32 33 250 2 135 242 32 10 36 243 245] \ #( ) ) > <primitive 112 temp 11 " modeString " \ #( #[ 32 81 250 2 133 242 245] \ #( ) ) > <primitive 112 temp 12 " modeInteger " \ #( #[ 32 82 250 2 133 242 245] \ #( ) ) > <primitive 112 temp 13 " modeCharacter " \ #( #[ 32 80 250 2 133 242 245] \ #( ) ) > <primitive 98 #File \ <primitive 97 #File #SequenceableCollection #/u/smalltalk/prelude/file.st \ #( ) \ #( #write: #size #read #open:for: #open: #next #first #currentKey #at:put: #at: #modeString #modeInteger #modeCharacter ) \ temp 3 4 > > SHAR_EOF if test 1377 -ne "`wc -c < 'prelude/file.p'`" then echo shar: error transmitting "'prelude/file.p'" '(should have been 1377 characters)' fi fi # end of overwriting check if test -f 'prelude/file.st' then echo shar: will not over-write existing file "'prelude/file.st'" else cat << \SHAR_EOF > 'prelude/file.st' Class File :SequenceableCollection [ modeCharacter <primitive 133 self 0> | modeInteger <primitive 133 self 2> | modeString <primitive 133 self 1> | at: aPosition <primitive 135 self aPosition>. ^ self read | at: aPosition put: anObject <primitive 135 self aPosition>. ^ self write: anObject | currentKey ^ <primitive 136 self> | first ^ self at: 0 | next ^ self read | open: aName <primitive 130 self aName 'r' > | open: aName for: opType <primitive 130 self aName opType > | read ^ <primitive 131 self> | size ^ <primitive 134 self> | write: anObject ^ <primitive 132 self anObject> ] SHAR_EOF if test 630 -ne "`wc -c < 'prelude/file.st'`" then echo shar: error transmitting "'prelude/file.st'" '(should have been 630 characters)' fi fi # end of overwriting check if test -f 'prelude/float.p' then echo shar: will not over-write existing file "'prelude/float.p'" else cat << \SHAR_EOF > 'prelude/float.p' temp <- <primitive 110 25 > <primitive 112 temp 1 " truncated " \ #( #[ 32 48 199 247 6 32 250 1 73 248 5 242 32 250 1 \ 72 243 245] \ #( 0.0 ) ) > <primitive 112 temp 2 " sqrt " \ #( #[ 32 250 1 71 243 245] \ #( ) ) > <primitive 112 temp 3 " rounded " \ #( #[ 32 48 192 250 1 72 243 245] \ #( 0.5 ) ) > <primitive 112 temp 4 " radix: " \ #( #[ 32 33 250 2 89 243 245] \ #( ) ) > <primitive 112 temp 5 " ln " \ #( #[ 32 250 1 70 243 245] \ #( ) ) > <primitive 112 temp 6 " integerPart " \ #( #[ 32 250 1 75 243 245] \ #( ) ) > <primitive 112 temp 7 " gamma " \ #( #[ 32 250 1 77 243 245] \ #( ) ) > <primitive 112 temp 8 " fractionPart " \ #( #[ 32 250 1 76 243 245] \ #( ) ) > <primitive 112 temp 9 " floor " \ #( #[ 32 250 1 72 243 245] \ #( ) ) > <primitive 112 temp 10 " exp " \ #( #[ 32 250 1 79 243 245] \ #( ) ) > <primitive 112 temp 11 " coerce: " \ #( #[ 33 175 243 245] \ #( ) ) > <primitive 112 temp 12 " ceiling " \ #( #[ 32 250 1 73 243 245] \ #( ) ) > <primitive 112 temp 13 " asString " \ #( #[ 32 250 1 78 243 245] \ #( ) ) > <primitive 112 temp 14 " asFloat " \ #( #[ 32 243 245] \ #( ) ) > <primitive 112 temp 15 " arcTan " \ #( #[ 5 54 32 250 1 86 176 243 245] \ #( ) ) > <primitive 112 temp 16 " arcSin " \ #( #[ 5 54 32 250 1 84 176 243 245] \ #( ) ) > <primitive 112 temp 17 " arcCos " \ #( #[ 5 54 32 250 1 85 176 243 245] \ #( ) ) > <primitive 112 temp 18 " ^ " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 88 248 5 242 \ 32 33 145 0 243 245] \ #( #raisedTo: ) ) > <primitive 112 temp 19 " / " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 69 248 5 242 \ 32 33 145 0 243 245] \ #( #/ ) ) > <primitive 112 temp 20 " * " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 68 248 5 242 \ 32 33 145 0 243 245] \ #( #* ) ) > <primitive 112 temp 21 " - " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 61 248 5 242 \ 32 33 145 0 243 245] \ #( #- ) ) > <primitive 112 temp 22 " + " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 60 248 5 242 \ 32 33 145 0 243 245] \ #( #+ ) ) > <primitive 112 temp 23 " > " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 63 248 5 242 \ 32 33 145 0 243 245] \ #( #> ) ) > <primitive 112 temp 24 " < " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 62 248 5 242 \ 32 33 145 0 243 245] \ #( #< ) ) > <primitive 112 temp 25 " = " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 66 248 5 242 \ 32 33 145 0 243 245] \ #( #= ) ) > <primitive 98 #Float \ <primitive 97 #Float #Number #/u/smalltalk/prelude/float.st \ #( ) \ #( #truncated #sqrt #rounded #radix: #ln #integerPart #gamma #fractionPart #floor #exp #coerce: #ceiling #asString #asFloat #arcTan #arcSin #arcCos #^ #/ #* #- #+ #> #< #= ) \ temp 2 4 > > SHAR_EOF if test 2739 -ne "`wc -c < 'prelude/float.p'`" then echo shar: error transmitting "'prelude/float.p'" '(should have been 2739 characters)' fi fi # end of overwriting check if test -f 'prelude/float.st' then echo shar: will not over-write existing file "'prelude/float.st'" else cat << \SHAR_EOF > 'prelude/float.st' Class Float :Number [ = aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 66 self aNumber>] ifFalse: [super = aNumber] | < aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 62 self aNumber>] ifFalse: [super < aNumber] | > aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 63 self aNumber>] ifFalse: [ super > aNumber] | + aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 60 self aNumber>] ifFalse: [super + aNumber] | - aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 61 self aNumber>] ifFalse: [super - aNumber] | * aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 68 self aNumber>] ifFalse: [super * aNumber] | / aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 69 self aNumber>] ifFalse: [super / aNumber] | ^ aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 88 self aNumber>] ifFalse: [super raisedTo: aNumber] | arcCos ^ Radian new: <primitive 85 self> | arcSin ^ Radian new: <primitive 84 self> | arcTan ^ Radian new: <primitive 86 self> | asFloat ^ self | asString ^ <primitive 78 self> | ceiling ^ <primitive 73 self> | coerce: aNumber ^ aNumber asFloat | exp ^ <primitive 79 self> | floor ^ <primitive 72 self> | fractionPart ^ <primitive 76 self> | gamma ^ <primitive 77 self> | integerPart ^ <primitive 75 self> | ln ^ <primitive 70 self> | radix: aNumber ^ <primitive 89 self aNumber> | rounded ^ <primitive 72 (self + 0.5)> | sqrt ^ <primitive 71 self> | truncated ^ (self < 0.0) ifTrue: [<primitive 73 self>] ifFalse: [<primitive 72 self>] ] SHAR_EOF if test 1655 -ne "`wc -c < 'prelude/float.st'`" then echo shar: error transmitting "'prelude/float.st'" '(should have been 1655 characters)' fi fi # end of overwriting check if test -f 'prelude/init' then echo shar: will not over-write existing file "'prelude/init'" else cat << \SHAR_EOF > 'prelude/init' smalltalk new SHAR_EOF if test 14 -ne "`wc -c < 'prelude/init'`" then echo shar: error transmitting "'prelude/init'" '(should have been 14 characters)' fi fi # end of overwriting check if test -f 'prelude/integer.p' then echo shar: will not over-write existing file "'prelude/integer.p'" else cat << \SHAR_EOF > 'prelude/integer.p' temp <- <primitive 110 31 > <primitive 112 temp 1 " timesRepeat: " \ #( #[ 80 114 34 32 199 247 11 33 165 242 34 81 192 241 114 \ 242 249 16 242 245] \ #( ) ) > <primitive 112 temp 2 " rem: " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 29 248 4 242 \ 32 10 35 243 245] \ #( ) ) > <primitive 112 temp 3 " radix: " \ #( #[ 32 33 250 2 26 243 245] \ #( ) ) > <primitive 112 temp 4 " quo: " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 28 248 4 242 \ 32 10 35 243 245] \ #( ) ) > <primitive 112 temp 5 " odd " \ #( #[ 32 82 205 80 202 243 245] \ #( ) ) > <primitive 112 temp 6 " noMask: " \ #( #[ 80 32 33 197 201 243 245] \ #( ) ) > <primitive 112 temp 7 " lcm: " \ #( #[ 32 33 250 2 6 247 10 32 33 194 32 33 11 27 206 \ 248 4 242 32 10 35 243 245] \ #( ) ) > <primitive 112 temp 8 " highBit " \ #( #[ 32 250 1 34 243 245] \ #( ) ) > <primitive 112 temp 9 " gcd: " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 20 248 4 242 \ 32 10 35 243 245] \ #( ) ) > <primitive 112 temp 10 " factorial " \ #( #[ 32 250 1 38 243 245] \ #( ) ) > <primitive 112 temp 11 " even " \ #( #[ 32 82 205 80 201 243 245] \ #( ) ) > <primitive 112 temp 12 " bitXor: " \ #( #[ 32 33 250 2 24 243 245] \ #( ) ) > <primitive 112 temp 13 " bitShift: " \ #( #[ 32 33 250 2 25 243 245] \ #( ) ) > <primitive 112 temp 14 " bitOr: " \ #( #[ 32 33 250 2 22 243 245] \ #( ) ) > <primitive 112 temp 15 " bitInvert " \ #( #[ 32 250 1 33 243 245] \ #( ) ) > <primitive 112 temp 16 " bitAt: " \ #( #[ 32 33 250 2 21 243 245] \ #( ) ) > <primitive 112 temp 17 " bitAnd: " \ #( #[ 32 33 250 2 23 243 245] \ #( ) ) > <primitive 112 temp 18 " asString " \ #( #[ 32 250 1 37 243 245] \ #( ) ) > <primitive 112 temp 19 " asFloat " \ #( #[ 32 250 1 39 243 245] \ #( ) ) > <primitive 112 temp 20 " asCharacter " \ #( #[ 32 250 1 36 243 245] \ #( ) ) > <primitive 112 temp 21 " anyMask: " \ #( #[ 80 32 33 250 2 23 202 243 245] \ #( ) ) > <primitive 112 temp 22 " allMask: " \ #( #[ 33 32 33 250 2 23 201 243 245] \ #( ) ) > <primitive 112 temp 23 " \\ " \ #( #[ 32 33 250 2 6 247 18 32 32 80 199 247 3 90 248 \ 2 242 81 194 114 34 33 205 248 4 242 32 10 35 243 \ 245] \ #( ) ) > <primitive 112 temp 24 " // " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 19 248 4 242 \ 32 10 35 243 245] \ #( ) ) > <primitive 112 temp 25 " / " \ #( #[ 32 175 33 190 243 245] \ #( ) ) > <primitive 112 temp 26 " * " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 18 248 5 242 \ 32 33 145 0 243 245] \ #( #* ) ) > <primitive 112 temp 27 " - " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 11 248 5 242 \ 32 33 145 0 243 245] \ #( #- ) ) > <primitive 112 temp 28 " + " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 10 248 5 242 \ 32 33 145 0 243 245] \ #( #+ ) ) > <primitive 112 temp 29 " < " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 12 248 5 242 \ 32 33 145 0 243 245] \ #( #< ) ) > <primitive 112 temp 30 " > " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 13 248 5 242 \ 32 33 145 0 243 245] \ #( #> ) ) > <primitive 112 temp 31 " = " \ #( #[ 32 33 250 2 6 247 7 32 33 250 2 16 248 5 242 \ 32 33 145 0 243 245] \ #( #= ) ) > <primitive 98 #Integer \ <primitive 97 #Integer #Number #/u/smalltalk/prelude/integer.st \ #( ) \ #( #timesRepeat: #rem: #radix: #quo: #odd #noMask: #lcm: #highBit #gcd: #factorial #even #bitXor: #bitShift: #bitOr: #bitInvert #bitAt: #bitAnd: #asString #asFloat #asCharacter #anyMask: #allMask: #\\ #// #/ #* #- #+ #< #> #= ) \ temp 3 5 > > SHAR_EOF if test 3531 -ne "`wc -c < 'prelude/integer.p'`" then echo shar: error transmitting "'prelude/integer.p'" '(should have been 3531 characters)' fi fi # end of overwriting check if test -f 'prelude/integer.st' then echo shar: will not over-write existing file "'prelude/integer.st'" else cat << \SHAR_EOF > 'prelude/integer.st' Class Integer :Number [ = aNumber ^ <primitive 6 self aNumber> ifTrue: [ <primitive 16 self aNumber> ] ifFalse: [ super = aNumber ] | > aNumber ^ <primitive 6 self aNumber> ifTrue: [ <primitive 13 self aNumber> ] ifFalse: [ super > aNumber ] | < aNumber ^ <primitive 6 self aNumber> ifTrue: [ <primitive 12 self aNumber> ] ifFalse: [ super < aNumber ] | + aNumber ^ <primitive 6 self aNumber> ifTrue: [ <primitive 10 self aNumber> ] ifFalse: [ super + aNumber ] | - aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 11 self aNumber>] ifFalse: [ super - aNumber ] | * aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 18 self aNumber>] ifFalse: [ super * aNumber ] | / aNumber ^ self asFloat / aNumber | // aNumber ^ <primitive 6 self aNumber> ifTrue: [<primitive 19 self aNumber>] ifFalse: [self opError] | \\ aNumber | i | ^ <primitive 6 self aNumber> ifTrue: [i <- self * ( (self < 0) ifTrue: [ -1 ] ifFalse: [ 1 ] ). i rem: aNumber] ifFalse: [self opError] | allMask: anInteger ^ anInteger = <primitive 23 self anInteger> | anyMask: anInteger ^ 0 ~= <primitive 23 self anInteger> | asCharacter ^ <primitive 36 self> | asFloat ^ <primitive 39 self > | asString ^ <primitive 37 self> | bitAnd: anInteger ^ <primitive 23 self anInteger> | bitAt: anInteger ^ <primitive 21 self anInteger> | bitInvert ^ <primitive 33 self> | bitOr: anInteger ^ <primitive 22 self anInteger> | bitShift: anInteger ^ <primitive 25 self anInteger> | bitXor: anInteger ^ <primitive 24 self anInteger> | even ^ (self rem: 2) = 0 | factorial ^ <primitive 38 self> | gcd: anInteger ^ <primitive 6 self anInteger> ifTrue: [<primitive 20 self anInteger>] ifFalse: [self opError] | highBit ^ <primitive 34 self> | lcm: anInteger ^ <primitive 6 self anInteger> ifTrue: [self * anInteger quo: (self gcd: anInteger)] ifFalse: [self opError] | noMask: anInteger ^ 0 = (self bitAnd: anInteger) | odd ^ (self rem: 2) ~= 0 | quo: anInteger ^ <primitive 6 self anInteger> ifTrue: [<primitive 28 self anInteger>] ifFalse: [self opError] | radix: aNumber ^ <primitive 26 self aNumber> | rem: anInteger ^ <primitive 6 self anInteger> ifTrue: [<primitive 29 self anInteger>] ifFalse: [self opError] | timesRepeat: aBlock | i | i <- 0. [i < self] whileTrue: [aBlock value. i <- i + 1] ] SHAR_EOF if test 2472 -ne "`wc -c < 'prelude/integer.st'`" then echo shar: error transmitting "'prelude/integer.st'" '(should have been 2472 characters)' fi fi # end of overwriting check if test -f 'prelude/interval.p' then echo shar: will not over-write existing file "'prelude/interval.p'" else cat << \SHAR_EOF > 'prelude/interval.p' temp <- <primitive 110 13 > <primitive 112 temp 1 " shallowCopy " \ #( #[ 16 17 18 212 243 245] \ #( ) ) > <primitive 112 temp 2 " deepCopy " \ #( #[ 16 17 18 212 243 245] \ #( ) ) > <primitive 112 temp 3 " removeKey:ifAbsent: " \ #( #[ 32 48 188 242 34 165 243 245] \ #( 'cannot remove from Interval' ) ) > <primitive 112 temp 4 " add: " \ #( #[ 32 48 188 243 245] \ #( 'cannot store into Interval' ) ) > <primitive 112 temp 5 " at:put: " \ #( #[ 32 48 188 243 245] \ #( 'cannot store into Interval' ) ) > <primitive 112 temp 6 " coerce: " \ #( #[ 33 174 243 245] \ #( ) ) > <primitive 112 temp 7 " printString " \ #( #[ 48 16 169 11 17 49 11 17 17 169 11 17 50 11 17 \ 18 169 11 17 243 245] \ #( 'Interval ' ' to ' ' by ' ) ) > <primitive 112 temp 8 " at:ifAbsent: " \ #( #[ 16 18 33 81 193 194 192 115 32 35 11 31 247 3 35 \ 248 3 242 34 165 243 245] \ #( ) ) > <primitive 112 temp 9 " next " \ #( #[ 19 18 192 99 32 19 11 31 247 1 19 243 245] \ #( ) ) > <primitive 112 temp 10 " first " \ #( #[ 16 99 32 19 11 31 247 1 19 243 245] \ #( ) ) > <primitive 112 temp 11 " inRange: " \ #( #[ 18 170 247 10 33 16 203 252 3 33 17 200 248 9 242 \ 33 17 203 252 3 33 16 200 243 245] \ #( ) ) > <primitive 112 temp 12 " size " \ #( #[ 18 170 247 5 17 16 199 248 4 242 16 17 199 247 3 \ 80 248 9 242 17 16 193 18 11 18 81 192 243 245] \ #( ) ) > <primitive 112 temp 13 " from:to:by: " \ #( #[ 33 241 96 99 34 97 35 98 245] \ #( ) ) > <primitive 98 #Interval \ <primitive 97 #Interval #SequenceableCollection #/u/smalltalk/prelude/interval.st \ #( #lower #upper #step #current ) \ #( #shallowCopy #deepCopy #removeKey:ifAbsent: #add: #at:put: #coerce: #printString #at:ifAbsent: #next #first #inRange: #size #from:to:by: ) \ temp 4 5 > > SHAR_EOF if test 1805 -ne "`wc -c < 'prelude/interval.p'`" then echo shar: error transmitting "'prelude/interval.p'" '(should have been 1805 characters)' fi fi # end of overwriting check if test -f 'prelude/interval.st' then echo shar: will not over-write existing file "'prelude/interval.st'" else cat << \SHAR_EOF > 'prelude/interval.st' Class Interval :SequenceableCollection | lower upper step current | [ from: lowerBound to: upperBound by: stepSize current <- lower <- lowerBound. upper <- upperBound. step <- stepSize | size ^ ((step strictlyPositive) ifTrue: [upper < lower] ifFalse: [lower < upper] ) ifTrue: [ 0 ] ifFalse: [upper - lower // step + 1] | inRange: value ^ (step strictlyPositive) ifTrue: [(value >= lower) and: [value <= upper]] ifFalse: [(value >= upper) and: [value <= lower]] | first current <- lower. ^ (self inRange: current) ifTrue: [current] | next current <- current + step. ^ (self inRange: current) ifTrue: [current] | at: index ifAbsent: exceptionBlock | val | val <- lower + (step * (index - 1)). ^ (self inRange: val) ifTrue: [ val ] ifFalse: [exceptionBlock value] | printString ^ 'Interval ', lower printString , ' to ', upper printString , ' by ' , step printString | coerce: newcollection ^ newcollection asArray | at: index put: val ^ self error: 'cannot store into Interval' | add: val ^ self error: 'cannot store into Interval' | removeKey: key ifAbsent: exceptionBlock self error: 'cannot remove from Interval'. ^ exceptionBlock value | deepCopy ^ lower to: upper by: step | shallowCopy ^ lower to: upper by: step ] SHAR_EOF if test 1369 -ne "`wc -c < 'prelude/interval.st'`" then echo shar: error transmitting "'prelude/interval.st'" '(should have been 1369 characters)' fi fi # end of overwriting check if test -f 'prelude/kcollection.p' then echo shar: will not over-write existing file "'prelude/kcollection.p'" else cat << \SHAR_EOF > 'prelude/kcollection.p' temp <- <primitive 110 18 > <primitive 112 temp 1 " values " \ #( #[ 5 32 160 113 32 225 2 4 33 34 189 243 179 242 33 \ 243 245] \ #( ) ) > <primitive 112 temp 2 " select: " \ #( #[ 32 32 5 40 160 226 2 13 33 35 180 247 5 34 32 \ 171 35 208 242 34 243 215 191 243 245] \ #( ) ) > <primitive 112 temp 3 " removeKey:ifAbsent: " \ #( #[ 32 48 188 243 245] \ #( 'subclass should implement RemoveKey:ifAbsent:' ) ) > <primitive 112 temp 4 " removeKey: " \ #( #[ 32 33 224 6 32 48 188 242 33 244 217 243 245] \ #( 'no element associated with key' ) ) > <primitive 112 temp 5 " remove: " \ #( #[ 32 48 188 243 245] \ #( 'object must be removed with explicit key' ) ) > <primitive 112 temp 6 " keysSelect: " \ #( #[ 32 32 5 40 160 226 2 14 33 35 171 180 247 5 34 \ 32 171 35 208 242 34 243 215 191 243 245] \ #( ) ) > <primitive 112 temp 7 " keysDo: " \ #( #[ 32 225 2 5 33 32 171 180 243 179 243 245] \ #( ) ) > <primitive 112 temp 8 " keys " \ #( #[ 5 57 160 113 32 225 2 4 33 34 189 243 11 32 242 \ 33 243 245] \ #( ) ) > <primitive 112 temp 9 " indexOf:ifAbsent: " \ #( #[ 32 225 3 9 35 33 201 247 3 32 171 244 243 179 242 \ 34 165 243 245] \ #( ) ) > <primitive 112 temp 10 " indexOf: " \ #( #[ 32 33 224 4 32 48 188 243 214 243 245] \ #( 'indexOf element not found' ) ) > <primitive 112 temp 11 " includesKey: " \ #( #[ 32 33 224 2 92 244 213 242 91 243 245] \ #( ) ) > <primitive 112 temp 12 " collect: " \ #( #[ 32 32 5 40 160 226 2 10 34 32 171 33 35 180 208 \ 242 34 243 215 191 243 245] \ #( ) ) > <primitive 112 temp 13 " binaryDo: " \ #( #[ 32 225 3 6 33 32 171 35 211 243 179 242 93 243 245 \ ] \ #( ) ) > <primitive 112 temp 14 " atAll:put: " \ #( #[ 33 225 3 5 32 35 34 208 243 179 242 245] \ #( ) ) > <primitive 112 temp 15 " at: " \ #( #[ 32 33 224 10 32 33 169 48 11 17 188 242 33 244 213 \ 243 245] \ #( ': association not found' ) ) > <primitive 112 temp 16 " asDictionary " \ #( #[ 5 40 160 113 32 226 2 5 33 34 35 208 243 11 23 \ 242 33 243 245] \ #( ) ) > <primitive 112 temp 17 " addAll: " \ #( #[ 33 226 2 5 32 34 35 208 243 11 23 242 33 243 245 \ ] \ #( ) ) > <primitive 112 temp 18 " add: " \ #( #[ 32 48 188 243 245] \ #( 'Must add with explicit key' ) ) > <primitive 98 #KeyedCollection \ <primitive 97 #KeyedCollection #Collection #/u/smalltalk/prelude/kcollection.st \ #( ) \ #( #values #select: #removeKey:ifAbsent: #removeKey: #remove: #keysSelect: #keysDo: #keys #indexOf:ifAbsent: #indexOf: #includesKey: #collect: #binaryDo: #atAll:put: #at: #asDictionary #addAll: #add: ) \ temp 4 9 > > SHAR_EOF if test 2622 -ne "`wc -c < 'prelude/kcollection.p'`" then echo shar: error transmitting "'prelude/kcollection.p'" '(should have been 2622 characters)' fi fi # end of overwriting check if test -f 'prelude/kcollection.st' then echo shar: will not over-write existing file "'prelude/kcollection.st'" else cat << \SHAR_EOF > 'prelude/kcollection.st' Class KeyedCollection :Collection [ add: anElement ^ self error: 'Must add with explicit key' | addAll: aCollection aCollection binaryDo: [:x :y | self at: x put: y]. ^ aCollection | asDictionary | newCollection | newCollection <- Dictionary new. self binaryDo: [:key :val | newCollection at: key put: val]. ^ newCollection | at: key ^ self at: key ifAbsent: [self error: (key printString , ': association not found'). ^ key] | atAll: aCollection put: anObject aCollection do: [:x | self at: x put: anObject] | binaryDo: aBlock | item | self do: [:x | aBlock value: self currentKey value: x ]. ^ nil | collect: aBlock ^ self coerce: (self inject: Dictionary new into: [:x :y | x at: self currentKey put: (aBlock value: y) . x ] ) | includesKey: key self at: key ifAbsent: [^ false]. ^ true | indexOf: anElement ^ self indexOf: anElement ifAbsent: [self error: 'indexOf element not found'] | indexOf: anElement ifAbsent: exceptionBlock self do: [:x | (x = anElement) ifTrue: [ ^ self currentKey ]]. ^ exceptionBlock value | keys | newset | newset <- Set new. self keysDo: [:x | newset add: x]. ^ newset | keysDo: aBlock ^ self do: [ :x | aBlock value: self currentKey ] | keysSelect: aBlock ^ self coerce: (self inject: Dictionary new into: [:x :y | (aBlock value: y currentKey) ifTrue: [x at: self currentKey put: y]. x ] ) | remove: anElement ^ self error: 'object must be removed with explicit key' | removeKey: key ^ self removeKey: key ifAbsent: [self error: 'no element associated with key'. ^ key] | removeKey: key ifAbsent: exceptionBlock ^ self error: 'subclass should implement RemoveKey:ifAbsent:' | select: aBlock ^ self coerce: (self inject: Dictionary new into: [:x :y | (aBlock value: y) ifTrue: [x at: self currentKey put: y]. x ] ) | values | newbag | newbag <- Bag new. self do: [:x | newbag add: x]. ^ newbag ] SHAR_EOF if test 2628 -ne "`wc -c < 'prelude/kcollection.st'`" then echo shar: error transmitting "'prelude/kcollection.st'" '(should have been 2628 characters)' fi fi # end of overwriting check if test -f 'prelude/larray.p' then echo shar: will not over-write existing file "'prelude/larray.p'" else cat << \SHAR_EOF > 'prelude/larray.p' temp <- <primitive 110 1 > <primitive 112 temp 1 " nothing " \ #( #[ 81 242 245] \ #( ) ) > <primitive 98 #ArrayedCollection \ <primitive 97 #ArrayedCollection #Object #/u/smalltalk/prelude/larray.st \ #( ) \ #( #nothing ) \ temp 1 2 > > SHAR_EOF if test 250 -ne "`wc -c < 'prelude/larray.p'`" then echo shar: error transmitting "'prelude/larray.p'" '(should have been 250 characters)' fi fi # end of overwriting check if test -f 'prelude/larray.st' then echo shar: will not over-write existing file "'prelude/larray.st'" else cat << \SHAR_EOF > 'prelude/larray.st' Class ArrayedCollection " This is just a null version of ArrayedCollection to serve as a place holder until the real version is read in during the prelude " [ nothing 1 ] SHAR_EOF if test 175 -ne "`wc -c < 'prelude/larray.st'`" then echo shar: error transmitting "'prelude/larray.st'" '(should have been 175 characters)' fi fi # end of overwriting check if test -f 'prelude/list.p' then echo shar: will not over-write existing file "'prelude/list.p'" else cat << \SHAR_EOF > 'prelude/list.p' temp <- <primitive 110 17 > <primitive 112 temp 1 " isEmpty " \ #( #[ 16 93 181 243 245] \ #( ) ) > <primitive 112 temp 2 " last " \ #( #[ 16 161 247 2 93 243 242 32 10 24 10 49 243 245] \ #( ) ) > <primitive 112 temp 3 " current " \ #( #[ 17 10 49 243 245] \ #( ) ) > <primitive 112 temp 4 " next " \ #( #[ 17 10 50 241 97 162 247 3 17 10 49 243 245] \ #( ) ) > <primitive 112 temp 5 " first " \ #( #[ 16 241 97 162 247 3 17 10 49 243 245] \ #( ) ) > <primitive 112 temp 6 " removeLast " \ #( #[ 16 161 247 4 32 10 37 243 242 32 32 10 30 224 4 \ 32 10 37 243 216 243 245] \ #( ) ) > <primitive 112 temp 7 " removeFirst " \ #( #[ 16 161 247 4 32 10 37 243 242 16 113 16 10 50 96 \ 33 10 49 243 245] \ #( ) ) > <primitive 112 temp 8 " removeError " \ #( #[ 32 48 188 243 245] \ #( 'cannot remove from an empty list' ) ) > <primitive 112 temp 9 " remove:ifAbsent: " \ #( #[ 16 161 247 3 34 165 243 242 32 93 226 3 31 17 10 \ 49 33 181 247 21 35 161 247 7 17 10 50 241 96 248 \ 7 242 35 17 10 50 11 51 242 33 244 242 17 243 215 \ 242 34 165 243 245] \ #( ) ) > <primitive 112 temp 10 " remove: " \ #( #[ 32 33 224 4 32 48 188 243 216 243 245] \ #( 'cant find item' ) ) > <primitive 112 temp 11 " findLast " \ #( #[ 16 241 113 161 247 2 93 243 242 33 10 50 162 247 8 \ 33 10 50 241 113 242 249 14 242 33 243 245] \ #( ) ) > <primitive 112 temp 12 " coerce: " \ #( #[ 5 48 160 114 33 225 3 5 34 35 11 22 243 179 242 \ 34 243 245] \ #( ) ) > <primitive 112 temp 13 " addAllLast: " \ #( #[ 33 225 2 5 32 34 11 22 243 179 242 245] \ #( ) ) > <primitive 112 temp 14 " addAllFirst: " \ #( #[ 33 225 2 5 32 34 11 21 243 179 242 245] \ #( ) ) > <primitive 112 temp 15 " addLast: " \ #( #[ 16 161 247 5 32 33 11 21 243 242 32 10 24 5 53 \ 160 33 11 50 93 11 51 11 51 242 33 243 245] \ #( ) ) > <primitive 112 temp 16 " addFirst: " \ #( #[ 5 53 160 33 11 50 16 11 51 96 33 243 245] \ #( ) ) > <primitive 112 temp 17 " add: " \ #( #[ 5 53 160 33 11 50 16 11 51 96 33 243 245] \ #( ) ) > <primitive 98 #List \ <primitive 97 #List #SequenceableCollection #/u/smalltalk/prelude/list.st \ #( #first #current ) \ #( #isEmpty #last #current #next #first #removeLast #removeFirst #removeError #remove:ifAbsent: #remove: #findLast #coerce: #addAllLast: #addAllFirst: #addLast: #addFirst: #add: ) \ temp 5 8 > > SHAR_EOF if test 2388 -ne "`wc -c < 'prelude/list.p'`" then echo shar: error transmitting "'prelude/list.p'" '(should have been 2388 characters)' fi fi # end of overwriting check if test -f 'prelude/list.st' then echo shar: will not over-write existing file "'prelude/list.st'" else cat << \SHAR_EOF > 'prelude/list.st' " Lists are implemented using Points in order to reduce the number of classes in the standard prelude " Class List :SequenceableCollection | first current | [ add: anItem first <- (Point new x: anItem ) y: first . ^ anItem | addFirst: anItem first <- (Point new x: anItem ) y: first . ^ anItem | addLast: anItem (first isNil) ifTrue: [^ self addFirst: anItem]. (self findLast) y: ((Point new x: anItem) y: nil). ^ anItem | addAllFirst: aCollection aCollection do: [:x | self addFirst: x] | addAllLast: aCollection aCollection do: [:x | self addLast: x] | coerce: aCollection | newList | newList <- List new. aCollection do: [:x | newList addLast: x]. ^ newList | findLast | item | ((item <- first) isNil) ifTrue: [^ nil]. [(item y) notNil] whileTrue: [item <- item y]. ^ item | remove: anItem ^ self remove: anItem ifAbsent: [self error: 'cant find item'] | remove: anItem ifAbsent: exceptionBlock (first isNil) ifTrue: [^ exceptionBlock value]. self inject: nil into: [:prev :current | (current x == anItem) ifTrue: [(prev isNil) ifTrue: [first <- current y] ifFalse: [prev y: (current y)]. ^ anItem]. current ] . ^ exceptionBlock value | removeError ^ self error: 'cannot remove from an empty list' | removeFirst | item | (first isNil) ifTrue: [^ self removeError]. item <- first. first <- first y. ^ item x | removeLast (first isNil) ifTrue: [^ self removeError]. ^ self remove: self last ifAbsent: [self removeError] | first ^ ((current <- first) notNil) ifTrue: [ current x ] | next ^ ((current <- current y) notNil) ifTrue: [ current x ] | current ^ current x | last (first isNil) ifTrue: [^ nil]. ^ self findLast x | isEmpty ^ first == nil ] SHAR_EOF if test 1802 -ne "`wc -c < 'prelude/list.st'`" then echo shar: error transmitting "'prelude/list.st'" '(should have been 1802 characters)' fi fi # end of overwriting check if test -f 'prelude/magnitude.p' then echo shar: will not over-write existing file "'prelude/magnitude.p'" else cat << \SHAR_EOF > 'prelude/magnitude.p' temp <- <primitive 110 9 > <primitive 112 temp 1 " max: " \ #( #[ 32 33 204 247 3 32 248 2 242 33 243 245] \ #( ) ) > <primitive 112 temp 2 " min: " \ #( #[ 32 33 199 247 3 32 248 2 242 33 243 245] \ #( ) ) > <primitive 112 temp 3 " between:and: " \ #( #[ 32 33 203 252 3 32 34 200 243 245] \ #( ) ) > <primitive 112 temp 4 " > " \ #( #[ 33 32 199 243 245] \ #( ) ) > <primitive 112 temp 5 " >= " \ #( #[ 32 33 204 251 3 32 33 201 243 245] \ #( ) ) > <primitive 112 temp 6 " ~= " \ #( #[ 32 33 201 172 243 245] \ #( ) ) > <primitive 112 temp 7 " = " \ #( #[ 32 33 204 251 3 32 33 199 172 243 245] \ #( ) ) > <primitive 112 temp 8 " < " \ #( #[ 33 32 204 243 245] \ #( ) ) > <primitive 112 temp 9 " <= " \ #( #[ 32 33 199 251 3 32 33 201 243 245] \ #( ) ) > <primitive 98 #Magnitude \ <primitive 97 #Magnitude #Object #/u/smalltalk/prelude/magnitude.st \ #( ) \ #( #max: #min: #between:and: #> #>= #~= #= #< #<= ) \ temp 3 4 > > SHAR_EOF if test 980 -ne "`wc -c < 'prelude/magnitude.p'`" then echo shar: error transmitting "'prelude/magnitude.p'" '(should have been 980 characters)' fi fi # end of overwriting check if test -f 'prelude/magnitude.st' then echo shar: will not over-write existing file "'prelude/magnitude.st'" else cat << \SHAR_EOF > 'prelude/magnitude.st' Class Magnitude [ <= arg ^ (self < arg) or: [self = arg] | < arg ^ (arg > self) | = arg ^ (self > arg or: [self < arg]) not | ~= arg ^ (self = arg) not | >= arg ^ (self > arg) or: [self = arg] | > arg ^ arg < self | between: low and: high ^ (self >= low) and: [self <= high] | min: arg ^ (self < arg) ifTrue: [self] ifFalse: [arg] | max: arg ^ (self > arg) ifTrue: [self] ifFalse: [arg] ] SHAR_EOF if test 416 -ne "`wc -c < 'prelude/magnitude.st'`" then echo shar: error transmitting "'prelude/magnitude.st'" '(should have been 416 characters)' fi fi # end of overwriting check if test -f 'prelude/nil.p' then echo shar: will not over-write existing file "'prelude/nil.p'" else cat << \SHAR_EOF > 'prelude/nil.p' temp <- <primitive 110 3 > <primitive 112 temp 1 " printString " \ #( #[ 48 243 245] \ #( 'nil' ) ) > <primitive 112 temp 2 " notNil " \ #( #[ 92 243 245] \ #( ) ) > <primitive 112 temp 3 " isNil " \ #( #[ 91 243 245] \ #( ) ) > <primitive 98 #UndefinedObject \ <primitive 97 #UndefinedObject #Object #/u/smalltalk/prelude/nil.st \ #( ) \ #( #printString #notNil #isNil ) \ temp 1 2 > > SHAR_EOF if test 409 -ne "`wc -c < 'prelude/nil.p'`" then echo shar: error transmitting "'prelude/nil.p'" '(should have been 409 characters)' fi fi # end of overwriting check if test -f 'prelude/nil.st' then echo shar: will not over-write existing file "'prelude/nil.st'" else cat << \SHAR_EOF > 'prelude/nil.st' Class UndefinedObject [ isNil ^ true | notNil ^ false | printString ^ 'nil' ] SHAR_EOF if test 150 -ne "`wc -c < 'prelude/nil.st'`" then echo shar: error transmitting "'prelude/nil.st'" '(should have been 150 characters)' fi fi # end of overwriting check if test -f 'prelude/number.p' then echo shar: will not over-write existing file "'prelude/number.p'" else cat << \SHAR_EOF > 'prelude/number.p' temp <- <primitive 110 30 > <primitive 112 temp 1 " truncateTo: " \ #( #[ 32 33 190 10 47 33 194 243 245] \ #( ) ) > <primitive 112 temp 2 " to:by: " \ #( #[ 5 46 160 241 32 33 34 131 0 242 243 245] \ #( #from:to:by: ) ) > <primitive 112 temp 3 " to: " \ #( #[ 5 46 160 241 32 33 81 131 0 242 243 245] \ #( #from:to:by: ) ) > <primitive 112 temp 4 " strictlyPositive " \ #( #[ 32 80 204 243 245] \ #( ) ) > <primitive 112 temp 5 " squared " \ #( #[ 32 32 194 243 245] \ #( ) ) > <primitive 112 temp 6 " sqrt " \ #( #[ 32 175 10 43 243 245] \ #( ) ) > <primitive 112 temp 7 " sign " \ #( #[ 32 80 199 247 3 90 248 11 242 32 80 204 247 3 81 \ 248 2 242 80 243 245] \ #( ) ) > <primitive 112 temp 8 " roundTo: " \ #( #[ 32 33 190 10 41 33 194 243 245] \ #( ) ) > <primitive 112 temp 9 " reciprocal " \ #( #[ 48 32 190 243 245] \ #( 1.00 ) ) > <primitive 112 temp 10 " raisedTo: " \ #( #[ 32 175 33 175 11 16 243 245] \ #( ) ) > <primitive 112 temp 11 " radians " \ #( #[ 5 54 32 175 176 243 245] \ #( ) ) > <primitive 112 temp 12 " positive " \ #( #[ 32 80 203 243 245] \ #( ) ) > <primitive 112 temp 13 " pi " \ #( #[ 32 48 194 243 245] \ #( 3.1415926 ) ) > <primitive 112 temp 14 " negative " \ #( #[ 32 80 199 243 245] \ #( ) ) > <primitive 112 temp 15 " negated " \ #( #[ 80 32 193 243 245] \ #( ) ) > <primitive 112 temp 16 " log: " \ #( #[ 32 10 32 33 10 32 190 243 245] \ #( ) ) > <primitive 112 temp 17 " ln " \ #( #[ 32 175 10 32 243 245] \ #( ) ) > <primitive 112 temp 18 " gamma " \ #( #[ 32 175 10 26 243 245] \ #( ) ) > <primitive 112 temp 19 " exp " \ #( #[ 32 175 10 23 243 245] \ #( ) ) > <primitive 112 temp 20 " abs " \ #( #[ 32 80 199 247 5 80 32 193 248 2 242 32 243 245] \ #( ) ) > <primitive 112 temp 21 " @ " \ #( #[ 5 53 160 32 11 50 33 11 51 243 245] \ #( ) ) > <primitive 112 temp 22 " ^ " \ #( #[ 32 175 33 175 11 16 243 245] \ #( ) ) > <primitive 112 temp 23 " / " \ #( #[ 32 33 11 34 33 32 11 34 190 243 245] \ #( ) ) > <primitive 112 temp 24 " * " \ #( #[ 32 33 11 34 33 32 11 34 194 243 245] \ #( ) ) > <primitive 112 temp 25 " - " \ #( #[ 32 33 11 34 33 32 11 34 193 243 245] \ #( ) ) > <primitive 112 temp 26 " + " \ #( #[ 32 33 11 34 33 32 11 34 192 243 245] \ #( ) ) > <primitive 112 temp 27 " > " \ #( #[ 32 33 11 34 33 32 11 34 204 243 245] \ #( ) ) > <primitive 112 temp 28 " < " \ #( #[ 32 33 11 34 33 32 11 34 199 243 245] \ #( ) ) > <primitive 112 temp 29 " = " \ #( #[ 32 33 11 34 33 32 11 34 201 243 245] \ #( ) ) > <primitive 112 temp 30 " maxtype: " \ #( #[ 32 33 250 2 9 247 3 32 248 4 242 33 32 191 243 \ 245] \ #( ) ) > <primitive 98 #Number \ <primitive 97 #Number #Magnitude #/u/smalltalk/prelude/number.st \ #( ) \ #( #truncateTo: #to:by: #to: #strictlyPositive #squared #sqrt #sign #roundTo: #reciprocal #raisedTo: #radians #positive #pi #negative #negated #log: #ln #gamma #exp #abs #@ #^ #/ #* #- #+ #> #< #= #maxtype: ) \ temp 3 6 > > SHAR_EOF if test 3046 -ne "`wc -c < 'prelude/number.p'`" then echo shar: error transmitting "'prelude/number.p'" '(should have been 3046 characters)' fi fi # end of overwriting check # End of shell archive exit 0