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