typestar

Bloques en Smalltalk

Código entre corchetes, un valor hasta recibir value.

"A block is code in brackets, a value until sent value."
| inkCost quote |
inkCost := [:pages | pages * 3].
Transcript show: (inkCost value: 16) printString, ' ml of ink'; cr.

"Blocks close over their surroundings."
quote := 'set solid'.
[Transcript show: 'The foreman says: ', quote; cr] value.

"Zero, one, and two-argument blocks."
[Transcript show: 'wash the rollers'; cr] value.
[:a :b | Transcript show: (a max: b) printString; cr]
    value: 12 value: 18.

Cómo funciona

  1. [:pages | pages * 3] es un bloque de un argumento.
  2. Los bloques encierran las temporales de alrededor.
  3. value, value: y value:value: los corren según aridad.

El intento, en números

Líneas
13
Caracteres a escribir
459
Tokens
76
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 76 segundos.

Escribe este fragmento

Paso 2 de 3 en Mensajes y bloques; paso 5 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →