{ import Smalltalk/kernel } " -*- Smalltalk -*- " [ (false or: [false]) refute. (false or: [true ]) assert. (true or: [false]) assert. (true or: [true ]) assert. (false and: [false]) refute. (false and: [true ]) refute. (true and: [false]) refute. (true and: [true ]) assert. ] [ (0 < 1) assert. (1 < 1) refute. (2 < 1) refute. (0 <= 1) assert. (1 <= 1) assert. (2 <= 1) refute. (0 == 1) refute. (1 == 1) assert. (2 == 1) refute. (0 ~~ 1) assert. (1 ~~ 1) refute. (2 ~~ 1) assert. (0 = 1) refute. (1 = 1) assert. (2 = 1) refute. (0 ~= 1) assert. (1 ~= 1) refute. (2 ~= 1) assert. (0 >= 1) refute. (1 >= 1) assert. (2 >= 1) assert. (0 > 1) refute. (1 > 1) refute. (2 > 1) assert. ] Foo : Object () Foo bar: a baz: b ... [ | args arg | args := OrderedCollection new. { va_list ap; va_start(ap, v_b) }. [{ v_arg= va_arg(ap, oop) }. arg notNil] whileTrue: [args add: arg]. "('bar: ', a printString, ' baz: ', b printString, ' : ', args asArray printString) println." { va_end(ap) }. ^args ] [ | words s o w d i | words := #( 'Peter' 'Piper' 'picked' 'a' 'peck' 'of' 'pickled' 'peppers' 'A' 'peck' 'of' 'pickled' 'peppers' 'Peter' 'Piper' 'picked' 'If' 'Peter' 'Piper' 'picked' 'a' 'peck' 'of' 'pickled' 'peppers' 'Where''s' 'the' 'peck' 'of' 'pickled' 'peppers' 'Peter' 'Piper' 'picked?' ). (words size = 34) assert. s := Set new. words do: [ :word | s add: word ]. "s println." (s size = 13) assert. (s includes: 'pickled') assert. (s includes: 'pickuld') refute. (' \a\b\e\f\n\r\t\v\000\\z' = '\040\007\010\033\014\012\015\011\013\000\134\172') assert. ('hello' = 'hello') assert. ('hello' = #hello ) assert. (#hello = 'hello') assert. (#hello = #hello ) assert. ('hello' == 'hello') refute. ('hello' == #hello ) refute. (#hello == 'hello') refute. (#hello == #hello ) assert. o := OrderedCollection new. w := nil. words do: [:word | o addLast: word]. [o isEmpty] whileFalse: [w := o removeFirst]. (w = 'picked?') assert. words do: [:word | o addLast: word]. [o isEmpty] whileFalse: [w := o removeLast]. (w = 'Peter') assert. words do: [:word | o addFirst: word]. [o isEmpty] whileFalse: [w := o removeFirst]. (w = 'Peter') assert. words do: [:word | o addFirst: word]. [o isEmpty] whileFalse: [w := o removeLast]. (w = 'picked?') assert. d := Dictionary new. i := IdentityDictionary new. words do: [ :word | d at: word put: word. i at: word put: word. i at: word put: word ]. d keysDo: [:key | ((d at: key) = key) assert]. i keysDo: [:key | ((i at: key) == key) assert]. ('aaa' < 'bbb') assert. ('aaa' <= 'bbb') assert. ('aaa' <= 'aaa') assert. ('aaa' = 'aaa') assert. ('aaa' >= 'aaa') assert. ('bbb' >= 'aaa') assert. ('bbb' > 'aaa') assert. ('aa' < 'aaa') assert. ('aa' <= 'aaa') assert. ('aa' <= 'aa' ) assert. ('aa' = 'aa' ) assert. ('aa' >= 'aa' ) assert. ('aaa' >= 'aa' ) assert. ('aaa' > 'aa' ) assert. ('abracadabra' includes: $d) assert. ('abracadabra' includes: $e) refute. s := String new writeStream. 'Hello, ' do: [:c | s nextPut: c]. s nextPutAll: 'world'. (s contents = 'Hello, world') assert. ((Foo bar: 'one' baz: 'two' : 'three' : 'four' : nil) = #(three four)) assert. ((#[1 2 3] at: 1) == 2) assert. ((#{1 2 3} at: 1) == 2) assert. 'sanity has been asserted' println. Smalltalk garbageCollect bytesFree print. ' bytes used in heap' println. ]