The Trunk: Help-Squeak-TerseGuide-tpr.8.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Help-Squeak-TerseGuide-tpr.8.mcz

commits-2
tim Rowledge uploaded a new version of Help-Squeak-TerseGuide to project The Trunk:
http://source.squeak.org/trunk/Help-Squeak-TerseGuide-tpr.8.mcz

==================== Summary ====================

Name: Help-Squeak-TerseGuide-tpr.8
Author: tpr
Time: 30 May 2018, 4:36:43.105355 pm
UUID: 9754754a-173e-4793-b0c0-1dc047ec9bf6
Ancestors: Help-Squeak-TerseGuide-topa.7

Update some help related methods; plenty more to come in this class.

=============== Diff against Help-Squeak-TerseGuide-topa.7 ===============

Item was changed:
  ----- Method: TerseGuideHelp class>>arithmetic (in category 'pages') -----
  arithmetic
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #arithmetic"
-
  ^HelpTopic
  title: 'Arithmetic Expressions'
  contents:
 
  '"************************************************************************
   * Arithmetic expressions: *
   ************************************************************************"
  | x |
  x := 6 + 3. "addition"
  x := 6 - 3. "subtraction"
  x := 6 * 3. "multiplication"
  x := 1 + 2 * 3. "evaluation always left to right (1 + 2) * 3"
  x := 5 / 3. "division with fractional result"
  x := 5.0 / 3.0. "division with float result"
  x := 5.0 // 3.0. "integer divide"
  x := 5.0 \\ 3.0. "integer remainder"
  x := -5. "unary minus"
  x := 5 sign. "numeric sign (1, -1 or 0)"
  x := 5 negated. "negate receiver"
  x := 1.2 integerPart. "integer part of number (1.0)"
  x := 1.2 fractionPart. "fractional part of number (0.2)"
  x := 5 reciprocal. "reciprocal function"
  x := 6 * 3.1. "auto convert to float"
  x := 5 squared. "square function"
  x := 25 sqrt. "square root"
  x := 5 raisedTo: 2. "power function"
  x := 5 raisedToInteger: 2. "power function with integer"
  x := 5 exp. "exponential"
  x := -5 abs. "absolute value"
  x := 3.99 rounded. "round"
  x := 3.99 truncated. "truncate"
  x := 3.99 roundTo: 1. "round to specified decimal places"
  x := 3.99 truncateTo: 1. "truncate to specified decimal places"
  x := 3.99 floor. "truncate"
  x := 3.99 ceiling. "round up"
  x := 5 factorial. "factorial"
  x := -5 quo: 3. "integer divide rounded toward zero"
  x := -5 rem: 3. "integer remainder rounded toward zero"
  x := 28 gcd: 12. "greatest common denominator"
  x := 28 lcm: 12. "least common multiple"
  x := 100 ln. "natural logarithm"
  x := 100 log. "base 10 logarithm"
  x := 100 log: 10 . "logarithm with specified base"
  x := 100 floorLog: 10. "floor of the log"
  x := 180 degreesToRadians. "convert degrees to radians"
  x := 3.14 radiansToDegrees. "convert radians to degrees"
  x := 0.7 sin. "sine"
  x := 0.7 cos. "cosine"
  x := 0.7 tan. "tangent"
  x := 0.7 arcSin. "arcsine"
  x := 0.7 arcCos. "arccosine"
  x := 0.7 arcTan. "arctangent"
  x := 10 max: 20. "get maximum of two numbers"
  x := 10 min: 20. "get minimum of two numbers"
  x := Float pi. "pi"
  x := Float e. "exp constant"
  x := Float infinity. "infinity"
  x := Float nan. "not-a-number"
  x := Random new next; yourself. x next. "random number stream (0.0 to 1.0)"
  x := 100 atRandom. "quick random number"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>array (in category 'pages') -----
  array
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #array"
-
  ^HelpTopic
  title: 'Array'
  contents:
 
  '"************************************************************************
   * Array:         Fixed length collection *
   * ByteArray:     Array limited to byte elements (0-255) *
   * WordArray:     Array limited to word elements (0-2^32) *
   ************************************************************************"
  | b x y sum max |
  x := #(4 3 2 1). "constant array"
  x := Array with: 5 with: 4 with: 3 with: 2. "create array with up to 4 elements"
  x := Array new: 4. "allocate an array with specified size"
  x "set array elements"
     at: 1 put: 5;
     at: 2 put: 4;
     at: 3 put: 3;
     at: 4 put: 2.
  b := x isEmpty. "test if array is empty"
  y := x size. "array size"
  y := x at: 4. "get array element at index"
  b := x includes: 3. "test if element is in array"
  y := x copyFrom: 2 to: 4. "subarray"
  y := x indexOf: 3 ifAbsent: [0]. "first position of element within array"
  y := x occurrencesOf: 3. "number of times object in collection"
  x do: [:a | Transcript show: a printString; cr]. "iterate over the array"
  b := x allSatisfy: [:a | (a >= 1) & (a <= 4)]. "test if all elements meet condition"
  y := x select: [:a | a > 2]. "return collection of elements that pass test"
  y := x reject: [:a | a < 2]. "return collection of elements that fail test"
  y := x collect: [:a | a + a]. "transform each element for new collection"
  y := x detect: [:a | a > 3] ifNone: []. "return first element that passes test"
  y := x findFirst: [:a | a < 3]. "find position of first element that passes test"
  sum := 0. x do: [:a | sum := sum + a]. sum. "sum array elements"
  sum := 0. 1 to: (x size) do: [:a | sum := sum + (x at: a)]. "sum array elements"
  sum := x inject: 0 into: [:a :c | a + c]. "sum array elements"
  max := x inject: 0 into: [:a :c | (a > c) "find max element in array"
     ifTrue: [a]
     ifFalse: [c]].
  y := x shuffled. "randomly shuffle collection"
  y := x asArray. "convert to array"
  y := x asByteArray. "convert to byte array"
  y := x asWordArray. "convert to word array"
  y := x asOrderedCollection. "convert to ordered collection"
  y := x asSortedCollection. "convert to sorted collection"
  y := x asBag. "convert to bag collection"
  y := x asSet. "convert to set collection"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>assignment (in category 'pages') -----
  assignment
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #assignment"
-
  ^HelpTopic
  title: 'Assignment'
  contents:
 
  '"************************************************************************
   * Assignment: *
   ************************************************************************"
  | x y z |
  x _ 4. "assignment (Squeak) <-"
  x := 5. "assignment"
  x := y := z := 6. "compound assignment"
  x := (y := 6) + 1.
  x := Object new. "bind to allocated instance of a class"
  x := 123 class. "discover the object class"
  x := Integer superclass. "discover the superclass of a class"
  x := Object allInstances. "get an array of all instances of a class"
  x := Integer allSuperclasses. "get all superclasses of a class"
  x := 1.2 hash. "hash value for object"
  y := x copy. "copy object"
  y := x shallowCopy. "copy object (not overridden)"
  y := x deepCopy. "copy object and instance vars"
  y := x veryDeepCopy. "complete tree copy using a dictionary"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>association (in category 'pages') -----
  association
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #association"
-
  ^HelpTopic
  title: 'Association'
  contents:
 
  '"************************************************************************
   * Associations: *
   ************************************************************************"
  | x y |
  x := #myVar->''hello''.
  y := x key.
  y := x value.
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>bag (in category 'pages') -----
  bag
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #bag"
-
  ^HelpTopic
  title: 'Bag'
  contents:
 
  '"************************************************************************
   * Bag:        like OrderedCollection except elements are in no *
   *                particular order *
   ************************************************************************"
  | b x y sum max |
  x := Bag with: 4 with: 3 with: 2 with: 1. "create collection with up to 4 elements"
  x := Bag new. "allocate collection"
  x add: 4; add: 3; add: 1; add: 2; yourself. "add element to collection"
  x add: 3 withOccurrences: 2. "add multiple copies to collection"
  y := x addAll: #(7 8 9). "add multiple elements to collection"
  y := x removeAll: #(7 8 9). "remove multiple elements from collection"
  y := x remove: 4 ifAbsent: []. "remove element from collection"
  b := x isEmpty. "test if empty"
  y := x size. "number of elements"
  b := x includes: 3. "test if element is in collection"
  y := x occurrencesOf: 3. "number of times object in collection"
  x do: [:a | Transcript show: a printString; cr]. "iterate over the collection"
  b := x allSatisfy: [:a | (a >= 1) & (a <= 4)]. "test if all elements meet condition"
  y := x select: [:a | a > 2]. "return collection of elements that pass test"
  y := x reject: [:a | a < 2]. "return collection of elements that fail test"
  y := x collect: [:a | a + a]. "transform each element for new collection"
  y := x detect: [:a | a > 3] ifNone: []. "return first element that passes test"
  sum := 0. x do: [:a | sum := sum + a]. sum. "sum elements"
  sum := x inject: 0 into: [:a :c | a + c]. "sum elements"
  max := x inject: 0 into: [:a :c | (a > c) "find max element in collection"
     ifTrue: [a]
     ifFalse: [c]].
  y := x asOrderedCollection. "convert to ordered collection"
  y := x asSortedCollection. "convert to sorted collection"
  y := x asBag. "convert to bag collection"
  y := x asSet. "convert to set collection"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>bitwise (in category 'pages') -----
  bitwise
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #bitwise"
-
  ^HelpTopic
  title: 'Bitwise Manipulation'
  contents:
 
  '"************************************************************************
   * Bitwise Manipulation: *
   ************************************************************************"
  | b x |
  x := 16rFF bitAnd: 16r0F. "and bits"
  x := 16rF0 bitOr: 16r0F. "or bits"
  x := 16rFF bitXor: 16r0F. "xor bits"
  x := 16rFF bitInvert. "invert bits"
  x := 16r0F bitShift: 4. "left shift"
  x := 16rF0 bitShift: -4. "right shift"
  x := 16r80 bitAt: 8. "bit at position (0|1)"
  x := 16r80 highBit. "position of highest bit set"
  b := 16rFF allMask: 16r0F. "test if all bits set in mask set in receiver"
  b := 16rFF anyMask: 16r0F. "test if any bits set in mask set in receiver"
  b := 16rFF noMask: 16r0F. "test if all bits set in mask clear in receiver"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>block (in category 'pages') -----
  block
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #block"
-
  ^HelpTopic
  title: 'Blocks'
  contents:
 
  '"************************************************************************
   * Blocks: *
   *    - blocks are objects and may be assigned to a variable *
   *    - value is last expression evaluated unless explicit return *
   *    - blocks may be nested *
   *    - specification [ arguments | | localvars | expressions ] *
   *    - ^expression terminates block & method (exits all nested blocks) *
   *    - blocks intended for long term storage should not contain ^ *
   ************************************************************************"
  | x y z fac |
  x := [ y := 1. z := 2. ]. x value. "simple block usage"
  x := [ :argOne :argTwo |   argOne, '' and '' , argTwo.]. "set up block with argument passing"
  Transcript show: (x value: ''First'' value: ''Second''); cr. "use block with argument passing"
  x := [:e | | v | v := 1. e + v] value: 2. "localvar in a block"
  fac := [ :n | n > 1 ifTrue:  [n * (fac value: n-1)] ifFalse: [1]]. "closure on block variable"
  fac value: 5. "closure variable scoped to its block"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>boolean (in category 'pages') -----
  boolean
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #boolean"
-
  ^HelpTopic
  title: 'Boolean'
  contents:
 
  '"************************************************************************
   * Booleans: *
   ************************************************************************"
  | b x y |
  x := 1. y := 2.
  b := (x = y). "equals"
  b := (x ~= y). "not equals"
  b := (x == y). "identical"
  b := (x ~~ y). "not identical"
  b := (x > y). "greater than"
  b := (x < y). "less than"
  b := (x >= y). "greater than or equal"
  b := (x <= y). "less than or equal"
  b := b not. "boolean not"
  b := (x < 5) & (y > 1). "boolean and"
  b := (x < 5) | (y > 1). "boolean or"
  b := (x < 5) and: [y > 1]. "boolean and (short-circuit)"
  b := (x < 5) or: [y > 1]. "boolean or (short-circuit)"
  b := (x < 5) eqv: (y > 1). "test if both true or both false"
  b := (x < 5) xor: (y > 1). "test if one true and other false"
  b := 5 between: 3 and: 12. "between (inclusive)"
  b := 123 isKindOf: Number. "test if object is class or subclass of"
  b := 123 isMemberOf: SmallInteger. "test if object is type of class"
  b := 123 respondsTo: #sqrt. "test if object responds to message"
  b := x isNil. "test if object is nil"
  b := x isZero. "test if number is zero"
  b := x positive. "test if number is positive"
  b := x strictlyPositive. "test if number is greater than zero"
  b := x negative. "test if number is negative"
  b := x even. "test if number is even"
  b := x odd. "test if number is odd"
  b := x isLiteral. "test if literal constant"
  b := x isInteger. "test if object is integer"
  b := x isFloat. "test if object is float"
  b := x isNumber. "test if object is number"
  b := $A isUppercase. "test if upper case character"
  b := $A isLowercase. "test if lower case character"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>character (in category 'pages') -----
  character
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #character"
-
  ^HelpTopic
  title: 'Character'
  contents:
 
  '"************************************************************************
   * Character: *
   ************************************************************************"
  | x y b |
  x := $A. "character assignment"
  y := x isLowercase. "test if lower case"
  y := x isUppercase. "test if upper case"
  y := x isLetter. "test if letter"
  y := x isDigit. "test if digit"
  y := x isAlphaNumeric. "test if alphanumeric"
  y := x isSeparator. "test if seperator char"
  y := x isVowel. "test if vowel"
  y := x digitValue. "convert to numeric digit value"
  y := x asLowercase. "convert to lower case"
  y := x asUppercase. "convert to upper case"
  y := x asciiValue. "convert to numeric ascii value"
  y := x asString. "convert to string"
  b := $A <= $B. "comparison"
  y := $A max: $B.
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>conditionalStatement (in category 'pages') -----
  conditionalStatement
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #conditionalStatement"
-
  ^HelpTopic
  title: 'Conditional Statement'
  contents:
 
  '"************************************************************************
   * Conditional Statements: *
   ************************************************************************"
  | x switch result |
  x := 11.
  x > 10 ifTrue: [Transcript show: ''ifTrue''; cr]. "if then"
  x > 10 ifFalse: [Transcript show: ''ifFalse''; cr]. "if else"
  x > 10 "if then else"
     ifTrue: [Transcript show: ''ifTrue''; cr]
     ifFalse: [Transcript show: ''ifFalse''; cr].
  x > 10 "if else then"
     ifFalse: [Transcript show: ''ifFalse''; cr]
     ifTrue: [Transcript show: ''ifTrue''; cr].
  Transcript
     show:
        (x > 10
           ifTrue: [''ifTrue'']
           ifFalse: [''ifFalse'']);
     cr.
  Transcript "nested if then else"
     show:
        (x > 10
           ifTrue: [x > 5
              ifTrue: [''A'']
              ifFalse: [''B'']]
           ifFalse: [''C'']);
     cr.
  switch := Dictionary new. "switch functionality"
  switch at: $A put: [Transcript show: ''Case A''; cr].
  switch at: $B put: [Transcript show: ''Case B''; cr].
  switch at: $C put: [Transcript show: ''Case C''; cr].
  result := (switch at: $B) value.
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>constants (in category 'pages') -----
  constants
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #constants"
-
  ^HelpTopic
  title: 'Constants'
  contents:
 
  '"************************************************************************
   * Constants: *
   ************************************************************************"
  | b x |
  b := true. "true constant"
  b := false. "false constant"
  x := nil. "nil object constant"
  x := 1. "integer constants"
  x := 3.14. "float constants"
  x := 2e-2. "fractional constants"
  x := 16r0F. "hex constant".
  x := -1. "negative constants"
  x := ''Hello''. "string constant"
  x := ''I''''m here''. "single quote escape"
  x := $A. "character constant"
  x := $ . "character constant (space)"
  x := #aSymbol. "symbol constants"
  x := #(3 2 1). "array constants"
  x := #(''abc'' 2 $a). "mixing of types allowed"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>conversion (in category 'pages') -----
  conversion
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #conversion"
-
  ^HelpTopic
  title: 'Conversion'
  contents:
 
  '"************************************************************************
   * Conversion: *
   ************************************************************************"
  | x |
  x := 3.99 asInteger. "convert number to integer (truncates in Squeak)"
  x := 3.99 asFraction. "convert number to fraction"
  x := 3 asFloat. "convert number to float"
  x := 65 asCharacter. "convert integer to character"
  x := $A asciiValue. "convert character to integer"
  x := 3.99 printString. "convert object to string via printOn:"
  x := 3.99 storeString. "convert object to string via storeOn:"
  x := 15 radix: 16. "convert to string in given base"
  x := 15 printStringBase: 16.
  x := 15 storeStringBase: 16.
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>date (in category 'pages') -----
  date
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #date"
-
  ^HelpTopic
  title: 'Date'
  contents:
 
  '"************************************************************************
   * Date: *
   ************************************************************************"
  | x y b |
  x := Date today. "create date for today"
  x := Date dateAndTimeNow. "create date from current time/date"
  x := Date readFromString: ''01/02/1999''. "create date from formatted string"
  x := Date newDay: 12 month: #July year: 1999. "create date from parts"
  x := Date fromDays: 36000. "create date from elapsed days since 1/1/1901"
  y := Date dayOfWeek: #Monday. "day of week as int (1-7)"
  y := Date indexOfMonth: #January. "month of year as int (1-12)"
  y := Date daysInMonth: 2 forYear: 1996. "day of month as int (1-31)"
  y := Date daysInYear: 1996. "days in year (365|366)"
  y := Date nameOfDay: 1. "weekday name (#Monday,...)"
  y := Date nameOfMonth: 1. "month name (#January,...)"
  y := Date leapYear: 1996. "1 if leap year; 0 if not leap year"
  y := x weekday. "day of week (#Monday,...)"
  y := x previous: #Monday. "date for previous day of week"
  y := x dayOfMonth. "day of month (1-31)"
  y := x day. "day of year (1-366)"
  y := x firstDayOfMonth. "day of year for first day of month"
  y := x monthName. "month of year (#January,...)"
  y := x monthIndex. "month of year (1-12)"
  y := x daysInMonth. "days in month (1-31)"
  y := x year. "year (19xx)"
  y := x daysInYear. "days in year (365|366)"
  y := x daysLeftInYear. "days left in year (364|365)"
  y := x asSeconds. "seconds elapsed since 1/1/1901"
  y := x addDays: 10. "add days to date object"
  y := x subtractDays: 10. "subtract days to date object"
  y := x subtractDate: (Date today). "subtract date (result in days)"
  y := x printFormat: #(2 1 3 $/ 1 1). "print formatted date"
  b := (x <= Date today). "comparison"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>debugging (in category 'pages') -----
  debugging
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #debugging"
-
  ^HelpTopic
  title: 'Debugging'
  contents:
 
  '"************************************************************************
   * debugging: *
   ************************************************************************"
  | a b x |
  x := Object new.
  x yourself. "returns receiver"
  String browse. "browse specified class"
  x inspect. "open object inspector window"
  x confirm: ''Is this correct?''.
  x halt. "breakpoint to open debugger window"
  x halt: ''Halt message''.
  x notify: ''Notify text''.
  x error: ''Error string''. "open up error window with title"
  x shouldNotImplement. "flag message should not be implemented"
  x subclassResponsibility. "flag message as abstract"
  x errorImproperStore. "flag an improper store into indexable object"
  x errorNonIntegerIndex. "flag only integers should be used as index"
  x errorSubscriptBounds: 13. "flag subscript out of bounds"
  x primitiveFailed. "system primitive failed"
 
  a := ''A1''. b := ''B2''. a become: b. "switch two objects"
  Transcript show: a, b; cr.
 
  x doesNotUnderstand: (Message selector: #foo). "flag message is not handled"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>dictionary (in category 'pages') -----
  dictionary
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #dictionary"
-
  ^HelpTopic
  title: 'Dictionary'
  contents:
 
  '"************************************************************************
   * Dictionary: *
   * IdentityDictionary:   uses identity test (== rather than =) *
   ************************************************************************"
  | b x y sum max |
  x := Dictionary new. "allocate collection"
  x add: #a->4; add: #b->3; add: #c->1; add: #d->2; yourself. "add element to collection"
  x at: #e put: 3. "set element at index"
  b := x isEmpty. "test if empty"
  y := x size. "number of elements"
  y := x at: #a ifAbsent: []. "retrieve element at index"
  y := x keyAtValue: 3 ifAbsent: []. "retrieve key for given value with error block"
  y := x removeKey: #e ifAbsent: []. "remove element from collection"
  b := x includes: 3. "test if element is in values collection"
  b := x includesKey: #a. "test if element is in keys collection"
  y := x occurrencesOf: 3. "number of times object in collection"
  y := x keys. "set of keys"
  y := x values. "bag of values"
  x do: [:a | Transcript show: a printString; cr]. "iterate over the values collection"
  x keysDo: [:a | Transcript show: a printString; cr]. "iterate over the keys collection"
  x associationsDo: [:a | Transcript show: a printString; cr]. "iterate over the associations"
  x keysAndValuesDo: [:aKey :aValue | Transcript "iterate over keys and values"
     show: aKey printString; space;
     show: aValue printString; cr].
  b := x allSatisfy: [:a | (a >= 1) & (a <= 4)]. "test if all elements meet condition"
  y := x select: [:a | a > 2]. "return collection of elements that pass test"
  y := x reject: [:a | a < 2]. "return collection of elements that fail test"
  y := x collect: [:a | a + a]. "transform each element for new collection"
  y := x detect: [:a | a > 3] ifNone: []. "return first element that passes test"
  sum := 0. x do: [:a | sum := sum + a]. sum. "sum elements"
  sum := x inject: 0 into: [:a :c | a + c]. "sum elements"
  max := x inject: 0 into: [:a :c | (a > c) "find max element in collection"
     ifTrue: [a]
     ifFalse: [c]].
  y := x asArray. "convert to array"
  y := x asOrderedCollection. "convert to ordered collection"
  y := x asSortedCollection. "convert to sorted collection"
  y := x asBag. "convert to bag collection"
  y := x asSet. "convert to set collection"
 
  Smalltalk at: #CMRGlobal put: ''CMR entry''. "put global in Smalltalk Dictionary"
  x := Smalltalk at: #CMRGlobal. "read global from Smalltalk Dictionary"
  Transcript show: (CMRGlobal printString). "entries are directly accessible by name"
  Smalltalk keys do: [ :k | "print out all classes"
     ((Smalltalk at: k) isKindOf: Class)
        ifFalse: [Transcript show: k printString; cr]].
  Smalltalk at: #CMRDictionary put: (Dictionary new). "set up user defined dictionary"
  CMRDictionary at: #MyVar1 put: ''hello1''. "put entry in dictionary"
  CMRDictionary add: #MyVar2->''hello2''. "add entry to dictionary use key->value combo"
  CMRDictionary size. "dictionary size"
  CMRDictionary keys do: [ :k | "print out keys in dictionary"
     Transcript show: k printString; cr].
  CMRDictionary values do: [ :k | "print out values in dictionary"
     Transcript show: k printString; cr].
  CMRDictionary keysAndValuesDo: [:aKey :aValue | "print out keys and values"
     Transcript
        show: aKey printString;
        space;
        show: aValue printString;
        cr].
  CMRDictionary associationsDo: [:aKeyValue | "another iterator for printing key values"
     Transcript show: aKeyValue printString; cr].
  Smalltalk removeKey: #CMRGlobal ifAbsent: []. "remove entry from Smalltalk dictionary"
  Smalltalk removeKey: #CMRDictionary ifAbsent: []. "remove user dictionary from Smalltalk dictionary"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>dynamic (in category 'pages') -----
  dynamic
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #dynamic"
-
  ^HelpTopic
  title: 'Dynamic Message Calling/Compiling'
  contents:
 
  '"************************************************************************
   * Dynamic Message Calling/Compiling: *
   ************************************************************************"
  | receiver message result argument keyword1 keyword2 argument1 argument2 |
  "unary message"
  receiver := 5.
  message := ''factorial'' asSymbol.
  result := receiver perform: message.
  result := Compiler evaluate: ((receiver storeString), '' '', message).
  result := (Message new setSelector: message arguments: #()) sentTo: receiver.
 
  "binary message"
  receiver := 1.
  message := ''+'' asSymbol.
  argument := 2.
  result := receiver perform: message withArguments: (Array with: argument).
  result := Compiler evaluate: ((receiver storeString), '' '', message, '' '', (argument storeString)).
  result := (Message new setSelector: message arguments: (Array with: argument)) sentTo: receiver.
 
  "keyword messages"
  receiver := 12.
  keyword1 := ''between:'' asSymbol.
  keyword2 := ''and:'' asSymbol.
  argument1 := 10.
  argument2 := 20.
  result := receiver
     perform: (keyword1, keyword2) asSymbol
     withArguments: (Array with: argument1 with: argument2).
  result := Compiler evaluate:
     ((receiver storeString), '' '', keyword1, (argument1 storeString) , '' '', keyword2, (argument2 storeString)).
  result := (Message
     new
        setSelector: (keyword1, keyword2) asSymbol
        arguments: (Array with: argument1 with: argument2))
     sentTo: receiver.
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>exceptionHandling (in category 'pages') -----
  exceptionHandling
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #exceptionHandling"
-
  ^HelpTopic
  title: 'Exception Handling'
  contents:
 
  '"************************************************************************
   * Exceptions: *
   ************************************************************************"
  | x |
  x := Object new.
  x error: ''Throwing an error''.
 
  NotFound signal. "simply throwing a specific exception"
  NotFound signal: ''Throwing with a message''. "throwing an exception with a custom text"
 
  x := [ 5 / 0 ] "simple exception handler"
  on: ZeroDivide do: [ 10 ].
  x := [ 5 / 0 ] "processing the exception in an exception handler"
  on: Error do: [:e | Transcript showln: e printString ].
  x := [ 5 / 0 ] "different exception handlers for the same block"
  on: ZeroDivide do: [ 10 ]
  on: MessageNotUnderstood do: [ 20 ].
  x := [ 5 / 0 ] "one exception handler for two different exceptions"
  on: ZeroDivide , ArithmeticError do: [ 10 ].
 
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>fileStream (in category 'pages') -----
  fileStream
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #fileStream"
-
  ^HelpTopic
  title: 'File Stream'
  contents:
 
  '"************************************************************************
   * FileStream: *
   ************************************************************************"
  | b x ios |
  ios := FileStream newFileNamed: ''ios.txt''.
  ios nextPut: $H; cr.
  ios nextPutAll: ''Hello File''; cr.
  ''Hello File'' printOn: ios.
  ''Hello File'' storeOn: ios.
  ios close.
 
  ios := FileStream oldFileNamed: ''ios.txt''.
  [(x := ios nextLine) notNil]
     whileTrue: [Transcript show: x; cr].
  ios position: 3.
  x := ios position.
  x := ios next.
  x := ios peek.
  b := ios atEnd.
  ios close.
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>internalStream (in category 'pages') -----
  internalStream
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #internalStream"
-
  ^HelpTopic
  title: 'Internal Stream'
  contents:
 
  '"************************************************************************
   * Internal Stream: *
   ************************************************************************"
  | b x ios |
  ios := ReadStream on: ''Hello read stream''.
  ios := ReadStream on: ''Hello read stream'' from: 1 to: 5.
  [(x := ios nextLine) notNil]
     whileTrue: [Transcript show: x; cr].
  ios position: 3.
  ios position.
  x := ios next.
  x := ios peek.
  x := ios contents.
  b := ios atEnd.
 
  ios := ReadWriteStream on: ''Hello read stream''.
  ios := ReadWriteStream on: ''Hello read stream'' from: 1 to: 5.
  ios := ReadWriteStream with: ''Hello read stream''.
  ios := ReadWriteStream with: ''Hello read stream'' from: 1 to: 10.
  ios position: 0.
  [(x := ios nextLine) notNil]
     whileTrue: [Transcript show: x; cr].
  ios position: 6.
  ios position.
  ios nextPutAll: ''Chris''.
  x := ios next.
  x := ios peek.
  x := ios contents.
  b := ios atEnd.
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>interval (in category 'pages') -----
  interval
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #interval"
-
  ^HelpTopic
  title: 'Interval'
  contents:
 
  '"************************************************************************
   * Interval: *
   ************************************************************************"
  | b x y sum max |
  x := Interval from: 5 to: 10. "create interval object"
  x := 5 to: 10.
  x := Interval from: 5 to: 10 by: 2. "create interval object with specified increment"
  x := 5 to: 10 by: 2.
  b := x isEmpty. "test if empty"
  y := x size. "number of elements"
  x includes: 9. "test if element is in collection"
  x do: [:k | Transcript show: k printString; cr]. "iterate over interval"
  b := x allSatisfy: [:a | (a >= 1) & (a <= 4)]. "test if all elements meet condition"
  y := x select: [:a | a > 7]. "return collection of elements that pass test"
  y := x reject: [:a | a < 2]. "return collection of elements that fail test"
  y := x collect: [:a | a + a]. "transform each element for new collection"
  y := x detect: [:a | a > 3] ifNone: []. "return first element that passes test"
  y := x findFirst: [:a | a > 6]. "find position of first element that passes test"
  sum := 0. x do: [:a | sum := sum + a]. sum. "sum elements"
  sum := 0. 1 to: (x size) do: [:a | sum := sum + (x at: a)]. "sum elements"
  sum := x inject: 0 into: [:a :c | a + c]. "sum elements"
  max := x inject: 0 into: [:a :c | (a > c) "find max element in collection"
     ifTrue: [a]
     ifFalse: [c]].
  y := x asArray. "convert to array"
  y := x asOrderedCollection. "convert to ordered collection"
  y := x asSortedCollection. "convert to sorted collection"
  y := x asBag. "convert to bag collection"
  y := x asSet. "convert to set collection"
 
  '!

Item was changed:
  ----- Method: TerseGuideHelp class>>introduction (in category 'pages') -----
  introduction
+ "This method was automatically generated. Edit it using:"
+ "TerseGuideHelp edit: #introduction"
-
  ^HelpTopic
  title: 'General'
  contents:
 
  '"************************************************************************
   * Allowable characters: *
   *    - a-z *
   *    - A-Z *
   *    - 0-9 *
   *    - .+/\*~<>@%|&? *
   *    - blank, tab, cr, ff, lf *
   * *
   * Variables: *
   *    - variables must be declared before use *
   *    - shared vars must begin with uppercase *
   *    - local vars must begin with lowercase *
   *    - reserved names: nil, true, false, self, super, and Smalltalk *
   * *
   * Variable scope: *
   *    - Global: defined in Dictionary Smalltalk and accessible by all *
   *         objects in system *
   *    - Special: (reserved) Smalltalk, super, self, true, false, & nil *
   *    - Method Temporary: local to a method *
   *    - Block Temporary: local to a block *
   *    - Pool: variables in a Dictionary object *
   *    - Method Parameters: automatic local vars created as a result of *
   *         message call with params *
   *    - Block Parameters: automatic local vars created as a result of *
   *         value: message call *
   *    - Class: shared with all instances of one class & its subclasses *
   *    - Class Instance: unique to each instance of a class *
   *    - Instance Variables: unique to each instance *
   ************************************************************************"
  "Comments are enclosed in quotes"
  "Period (.) is the statement seperator"
 
  '!