typestar

Fundamentos del lenguaje

31 pasos en 10 series de Smalltalk.

Smalltalk es de donde vienen los objetos: el lenguaje que el equipo de Alan Kay construyó en Xerox PARC en los años 70 junto a la GUI, el IDE y el flujo guiado por mouse que al resto de la computación le tomó décadas absorber. Todo es un objeto, todo pasa por envío de mensajes, y la gramática entera — mensajes unarios, binarios, de palabra clave — cabe en una postal. Los condicionales y bucles no son sintaxis; son mensajes que booleanos y bloques responden.

Este tour teclea Smalltalk de workspace, como el lenguaje se escribe de verdad en vivo: temporales y cascadas, las tres formas de mensaje, bloques y clausuras, ifTrue:ifFalse: y to:do:, la biblioteca de colecciones de OrderedCollection a Dictionary, Set y Bag, select/collect/inject, strings y símbolos y caracteres, orden con bloques de comparación, streams de lectura y escritura, excepciones con on:do: y ensure:, fracciones exactas, y la reflexión como conversación — class, respondsTo:, isKindOf:. El Bis es el trío de scripts de siempre hablado en Bags, bloques y cascadas bajo Pharo.

Empieza este tour

Valores

Mensajes y bloques

  • CascadasUn receptor, muchos mensajes: el punto y coma.
  • BloquesCódigo entre corchetes, un valor hasta recibir value.
  • Booleanosand:/or: toman bloques y cortocircuitan; & y | no.

Control de flujo

  • CondicionalesNo hay if: los booleanos reciben mensajes ifTrue:ifFalse:.
  • Buclesto:do:, timesRepeat:, whileTrue: — todos mensajes.
  • nilUn objeto como cualquiera; ifNil:ifNotNil: ramifica sobre él.

Colecciones

Enumeración

Strings

Orden e identidad

  • OrdenarasSortedCollection ordena; el bloque de orden elige cómo.
  • AsociacionesPares clave -> valor, los átomos de los diccionarios.
  • Copia e identidad= pregunta contenidos iguales; == pregunta mismo objeto.

Streams

Reflexión

  • Preguntar a los objetosclass, respondsTo:, isKindOf:: la reflexión como conversación.
  • Excepcionessignal lanza; on:do: maneja; ensure: corre siempre.
  • NúmerosLas fracciones quedan exactas; los enteros crecen sin límite.

Bis

  • word_freq.stUna tabla de frecuencias con un Bag, un bloque de orden y relleno.
  • grade_report.stBoletines desde asociaciones, una escalera de bloques y relleno.
  • temp_stats.stUna semana de temperaturas: extremos por inject, barras, saltos.

Los otros tours de Smalltalk