6 Matching Annotations
  1. Apr 2025
    1. #(2 33-4 67) collect: [ :each | each abs ]
      • receptor: #(2 33-4 67)
      • selector: collect:
      • argumento: [ :each | each abs ]

      Este es un caso de la combinación de tres cosas: las colecciones, los bloques y los iteraradores.

      each es el iterador, que toma la forma de las llamadas variables mudas, pues puedo colocar su nombre de manera arbitraria (se define en la parte a la izquiera de la barra del bloque [ :each y a la derecha, lo que quiero hacer con dicha variable, una vez vaya tomando los valores de cada elemento en el arreglo, que, para este ejercicio, es sacar el valor absoluto (each abs ]). Podría haberle llamado number o de otra forma. Lo clave es que el nombres :each sea el mismo usado antes y después de la barra del bloque, que separa la definición de variables, de lo que hago con ellas.

    2. #('' 'World') at: 1 put: 'Hello'
      • Receptor: #( '' 'World')
      • Selector: at: put:
      • Argumentos: 1, Hello

      El error a continuación se presenta por que el arreglo es estático (es decir que no se puede cambiar, después de que se crea). El ejemplo debería hacerse con un arreglo dinámico, definido así:

      smalltalk {'' . 'World'} at: 1 put: 'Hello'; yourself Con lo cual en la posición 1 estoy colocando palabra Hello en lugar de la que había originalmente.

      Nótese que el yourself se agrega al final como un mensaje en cascada , es decir se lo seguimos enviando al mismo receptor, con la intensión de que se muestre a sí mismo (yourself) para que veamos cómo queda una vez hemos aplicado los cambios.