**Challenge yourself**
Ejercicios tomados del libro Learning Object-Oriented Programming, Design with TDD in Pharo [Cápitulo 4 ](https://chiselapp.com/user/Valentina.P/repository/Valentina-P/doc/tip/2018-04-01-LearningOOP-37-42.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: 3 * Selector: + * Arguments: 4
![ Resultados de ejercicio 1 ](https://docutopia.sustrato.red/uploads/db3a65e2-5efb-4f53-96af-ebf8f19eaba8.png)
Al no contar con errores, así es como se visualizarán los resultados de nuestros códigos
* Receiver: Date * Selector: Today * Result: 2025-04-08
* Receiver: World * Selector: at: put * Arguments: 1, Hello * Result: ('Hello')
* Receiver: #(1 22 333) * Selector: at * Arguments: 2 * Result: 22
* Receiver: #(2 33-4 67) * Selector: Collect * Arguments:[ : each | each abs ] * Result: 2 33 4 67
* Receiver: 25 * Selector: @ * Arguments: 50 * Result: Variables: X, Y Sus respectivos valores: 25, 50
* Receiver: SmallInteger de tipo clase al empezar en mayuscula y al referirse a todo el conjunto * Selector: maxVal * Result: 1152921504606846975
Al tener dos puntos : y su estructura nos delata qeu es Keyword * Receiver: #(a b c d e f) * Selector: includesAll * Arguments: #(f d b) * Result: Verdadero
Del tipo binario (operadores boleanos y separados con | ) * Receiver: True * Selector: False * Result: Verdadero
Tipo unario, tiene un objeto y un mensaje * Receiver: Point * Selector: Selectors * Result:
![ Resultados de ejercicio Ponit selectors ](https://docutopia.sustrato.red/uploads/25acb751-e246-4372-aa65-3d240ae6368c.png)
# Challenge: Literal objects
¿A qué tipo de objeto se refieren las siguientes expresiones literales? Es igual que preguntar, cuál es el resultado de enviar el mensaje de clase a dichas expresiones.
Son números
Es un símbolo por el numeral y la falta de espacio
Es un arreglo por el numeral, parentesis y espacio entre números
Unario ya que la coma esta dentro del parentesis. Si estuviera afuera de las comillas y entre ambas palabras con comillas, sería binario. Tipo cadena por las comillas.
Es bloque. Los argumentos, son las variables internas de los bloques, están precedidas por ':' y la barra vertical "|" separa la parte en que se definen los argumentos, de la parte en que se dice que hacer con ellos.
Caracter por iniciar en $ y su estructura
**Valor** Binario. Operadores boleanos, true o false.
Número
# Challenge: Kind of messages Examinar los siguinetes mensajes son unarios, binarios y/o basado en palabras claves.
Unario, estructura de objeto mensaje
Unario, estructura de objeto mensaje
Como se mencionó anteriormente, al tener dos puntos : delata que es tipo keyword
Como se mencionó anteriormente, al tener una coma entre ambas palabras con comillas la vuelve binario ya que habría dos objetos
Al tener un arroba @ entre ambos números la vuelve binario ya que habría dos objetos
Unario, estructura de objeto mensaje
Como se mencionó anteriormente, al tener dos puntos : delata que es tipo keyword y por su estructura de objeto entre dos puntos
# Challenge: Results Examinar las siguientes expresiones & ¿Cuál es el valor que devuelve su ejecución?
Número -2
Número 32
Me da el objeto que este en la posición que le pedimos, en este caso la posición 2 que corresponde al objeto 'second'
Me da, lo que interpreto como un arreglo #(4 9 100 9)
![ ](https://docutopia.sustrato.red/uploads/305ca5fc-d520-4c56-aea5-a153ce628131.png)
Número 5
Número -32
Resultado de Verdadero
# Challenge: unneeded parentheses Al usar más paréntesis de lo necesario puede llevar a expresiones complejas de entender. En las siguientes expresiones usar la menor cantidad de paréntesis.
Se le puede quitar los parentesis para que sea más entendible. Qudando así
Puede quedar con menos parentesis así:
Puede tener menos parentesis así:
Se pueden quitar todos los parentesis
Se pueden quitar los parentesis exteriores
Se pueden quitar todos los parentesis
Se pueden quitar todos los parentesis