**Challenge yourself**
Ejercicios tomados de el capítulo homónimo del libro [Learning Object-Oriented Programming, Design with TDD in Pharo](https://files.pharo.org/books-pdfs/learning-oop/2018-04-01-LearningOOP.pdf)
# Challenge: Message identification
For each of the expressions below, fill in the answers
* What is the receiver object?
* What is the message selector?
* What is/are the argument (s)?
* What is the result returned by this expression execution?
* receiver: Date
* selector: today
receiver: world
selector: put
result: hello
receiver: # (1 22 333)
selector: at
arguments: 2
result: 22
receiver: # (1 22 333)
selector: collect
arguments: [ :each | each abs ]
receiver: 25
selector: @
arguments: 50
receiver: SmallInteger
selector: maxVal
receiver: #(a b c d e f)
selector: includesAll
arguments: #(f d b)
result: true
receiver: true
selector: false
result: true
receiver: point
selector: selectors
# Challenge: Literal objects
What kind of object does the following literal expressions refer to? It is the
same as asking what is the result of sending the class message to such ex
pressions.
Tipo de objeto: números
Tipo de objeto: números
Tipo de objeto: números
Tipo de objeto: Cadenas
Tipo de objeto: Cadenas
Tipo de objeto: Caráctares
Tipo de objeto: Caráctares
Tipo de objeto: números
# Challenge: Kind of messages
Examine the following messages and report if the message is unary, binary or
keyword-based
Unario
Unario
Binario
Unario
Binario
Unario
Binario
# Challenge: Results
Examine the following expressions. What is the value returned by the execu
tion of the following expressions?
-2
2
32
Self second
an Array [4 items] (491009)
5
-32
true
# Challenge: unneeded parentheses
Putting more parentheses than necessary is a good way to get started. Such
practice however leads to less readable expressions. Rewrite the following
expressions using the least number of parentheses.
x between: (pt1 x and: pt2 y)
`#(a b c d e f) asSet intersection: #(f d b) asSet`
(x isZero
ifTrue: [....]
x includes: y)
ifTrue: [....]
OrderedCollection new
add: 56;
add: 33;
yourself
(3 + 4) + (2 * 2) + (2 * 3)
Integer primesUpTo: 64 sum
'http://www.pharo.org' asUrl retrieveContents