11 Matching Annotations
  1. Last 7 days
  2. 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.

  3. Apr 2024
    1. [:session | doc := HedgeDoc new url: commonAddress, session asString; retrieveContents. ]

      Bloque

      nos indica que se ejecutara para cada elemento de (sessiones)

      Sessions: es un elemnto que esta dento de (Session).

      en este mismo bloque se crea un (HedgeDoc) nuevo,lo cual establece las url

    1. [:each | each abs]

      El bloque proporcionado es [:each | each abs], que toma cada elemento (each)

    2. Bloques
      • Métodos anónimos: Los bloques no tienen nombres asociados y pueden ser creados y utilizados sobre la marcha sin necesidad de definir un nombre específico para ellos.

      • Almacenamiento en variables: Los bloques pueden ser asignados a variables y pasados como argumentos a otros métodos o bloques.

      • Delimitados por paréntesis cuadrados: Los bloques en Pharo están delimitados por paréntesis cuadrados [ ].

      • Captura de contexto: Los bloques pueden capturar variables definidas en el contexto en el que se crean, lo que les permite acceder y manipular esos valores

  4. Mar 2024
    1. b := [:x | x + 2]. b value: 20

      La caja b está guardando no un valor, sino un procedimiento o cálculo futuro, cuyo resultado conocemos cuando asignamos los valores a los argumentos de los cuales dicho cálculo requiere.

    2. [:x :y | x - y] value:3 value:5

      En los bloques, el orden de los argumentos importa:

    1. [:x | x+2]

    2. Bloques For this part a Basic understanding of Basic Types is recommended. If you have not done that part yet, please go to that subtree and run the code there Ahora hablemos de los bloques. Piensa en los bloques como una manera de 'congelar' código que luego podremos ejecutar por demanda, cuando queramos y/o las condiciones para su ejecución se cumplan. Los bloques son métodos anónimos, lo cual quiere decir que no es necesario ponerles nombres para invocarlos (como ocurre con las operaciones sobre objetos que hemos visto hasta el momento) y pueden pueden ser almacenados en variables. Los bloques están delimitados por paréntesis cuadrados: []
      • Métodos anónimos: Los bloques no tienen nombres asociados y pueden ser creados y utilizados sobre la marcha sin necesidad de definir un nombre específico para ellos.

      • Almacenamiento en variables: Los bloques pueden ser asignados a variables y pasados como argumentos a otros métodos o bloques.

      • Delimitados por paréntesis cuadrados: Los bloques en Pharo están delimitados por paréntesis cuadrados [ ].

      • Captura de contexto: Los bloques pueden capturar variables definidas en el contexto en el que se crean, lo que les permite acceder y manipular esos valores

  5. Mar 2023
    1. Blocks are Smalltalks anonymous functions, or lambdas. They are expressed as a sequence of statements enclosed in square brackets.

      Son maneras de dejar operaciones pendientes.