2 negated raisedTo: 3 + 2
Tipos de mensajes combinados:
- unario: negated.
- binario: +
- keyword:
raisedTo:
2 negated raisedTo: 3 + 2
Tipos de mensajes combinados:
raisedTo:sessions := 1 to: 11
El tipo de mensaje es keyword porque son aquellos mensajes que consisten en uno o más nombres de argumentos precedidos por dos puntos (:). Su composición parte de:
Un receptor (objeto), el mensaje (método a utilizar) y el argumento que son los valores que se pasan al método para que pueda realizar la tarea. En los mensajes keyword, los argumentos están precedidos por dos puntos (:) y separados por comas (,).
Para este caso:
* El objeto es: sessions.
* El mensaje es: to
* y el argumento pasado por el método to es el 11, Esto indica que la secuencia de números enteros debe ir desde 1 hasta 11 inclusive. 
memories do: [:doc | | fileName | fileName := (doc url asString splitOn: $:) last , '.md'. doc file: folder / fileName. doc exportAsFile. ]
Es un mensaje tipo keyword
memoriesdodo es el bloque proporcionado entre corchetes [:doc | .... ] aquí el iterador es el do, el cual se utiliza para recorrer cada elemento de la colección o objeto memories y ejecutar el bloque proporcionado para cada uno de ellos. Resultado devuelto al ejecutar todo el bloque:

memories doWithIndex: [:item :index | item metadata at: 'title' put: 'Unidades semanticas, sesión ', index asString ].
Este mensaje es tipo Keyword y dentro de este el
memories el cual invoca el método. doWithIndex: Este es un mensaje de Pharo que se utiliza para iterar sobre una colección y proporciona tanto el elemento actual como su índice en cada iteración.doWithIndex el cual es un bloque de código que define la acción que se realizará en cada elemento de la colección. En este caso, el bloque es [:item :index | ........ ], es decir, todo lo que encierran los corchetes y recibe dos parámetros: item, que representa cada elemento de la colección, y index, que representa el índice del elemento en la colección.Dentro del bloque:
* El objeto item es el elemento actual de la colección memories.
* El mensaje enviado es metadata, que es un mensaje enviado al objeto item. Este mensaje obtiene los metadatos asociados con el elemento actual.
* El argumento del mensaje at:put: es una clave, en este caso 'title', y el nuevo valor 'Unidades semanticas, sesión ', que se asigna a la clave 'title' en los metadatos del elemento actual.
Al ejecutar todo el código se devuelve el siguiente resultado:

memories := sessions collect: [:session | doc := HedgeDoc new url: commonAddress, session asString; retrieveContents. ]
Este ejemplo en Pharo se refiere a la manipulación de colecciones y al uso de bloques en combinación con mensajes Keyword.
Ahora bien, a continuación se explica las dos partes del ejercicio: En mensaje en keyword es:
1. Objeto es: sessions
2. Mensaje es: collect<br />
3. Argumento: [:session |
Dentro del bloque el código funciona así:
1. Objeto: para este se crea un nuevo objeto de tipo HedgeDoc utilizando el mensaje new. Este objeto se asigna a la variable doc.
2. Ahora el mensajes new envían varios mensajes al objeto doc: tales como:
* url: Configura la URL del objeto doc. Toma como argumento la concatenación de commonAddress (una dirección común) y la representación de cadena de session.
* Ahora utiliza retrieveContents: el cual es un mensaje que permite recuperar el contenido de la URL configurada en el objeto doc.
En general, el código utiliza el iterador collect: el cual controla la iteración sobre la colección sessions y aplica el bloque definido [:session | a cada elemento de la colección.
Al ejecutar todo este código se obtiene el siguiente resultado:

sessions := 1 to: 11
El tipo de mensaje es keyword porque son aquellos mensajes que consisten en uno o más nombres de argumentos precedidos por dos puntos (:). Su composición parte de:
Un receptor (objeto), el mensaje (método a utilizar) y el argumento que son los valores que se pasan al método para que pueda realizar la tarea. En los mensajes keyword, los argumentos están precedidos por dos puntos (:) y separados por comas (,).
Para este caso:
* El objeto es sessions.
* El mensaje es to
* y el argumento pasado por el método to es el 11, Esto indica que la secuencia de números enteros debe ir desde 1 hasta 11 inclusive. 
sessions := 1 to: 11
El tipo de mensaje es keyword porque son aquellos mensajes que consisten en uno o más nombres de argumentos precedidos por dos puntos (:). Su composición parte de:
Un receptor (objeto), el mensaje (método a utilizar) y el argumento que son los valores que se pasan al método para que pueda realizar la tarea. En los mensajes keyword, los argumentos están precedidos por dos puntos (:) y separados por comas (,).
Para este caso:
* El objeto es sessions.
* El mensaje es to
* y el argumento pasado por el método to es el 11, Esto indica que la secuencia de números enteros debe ir desde 1 hasta 11 inclusive. 
(daysIndexes collect: [:letter | (Shortener enlarge: commonAddress, letter asString) ])
Mensaje keyword
* receptor: daysIndexes
* mensaje: collect:
* argumento: [:letter |
(Shortener enlarge: commonAddress, letter asString)]
HedgeDoc new url: address;
Mensaje keyword
* receptor: hedgeDoc
* mensaje: url:
* argumento: address;
dataWeekDailyNoteAddresses collectWithIndex: [:address :i | | hedgeDoc | hedgeDoc := HedgeDoc new url: address; retrieveContents. hedgeDoc metadata at: 'title' put: ('acceso23 : sesión ', i asString). hedgeDoc ]
Mensaje keyword
* receptor: dataWeekDailyNoteAddresses
* mensaje: CollectWithIndex:
* argumento: [:address :i | | hedgeDoc |
hedgeDoc := HedgeDoc new
url: address;
retrieveContents.
hedgeDoc metadata
at: 'title' put: ('acceso23 : sesión ', i asString).
hedgeDoc]
hedgeDoc metadata at: 'title' put: ('Sesión del 17 de marzo').
Mensaje unario:
hedgeDocmetadadaMensaje Keword:
hedgeDoc metadataat: put:'title' 'Sesión del 17 de marzo'hedgeDoc := HedgeDoc new url: 'https://docutopia.sustrato.red/accesibilidad:23K?both# '; retrieveContents.
Mensaje unario:
hegeDocretrieveContentsMensaje Keyword:
hegeDocurl:https://docutopia.sustrato.red/accesibilidad:23K?both#repositoryFolder := FileLocator documents / 'Acceso\kathy29-wikilexias\'. wikiFolder := repositoryFolder / 'wiki'. wikiSubfolder := wikiFolder / 'es' / 'RecuperacionClasesAccesibilidad'. wikiSubfolder ensureCreateDirectory
Mensajes keyword:
Mensajes Binarios:
wikiFolder := repositoryFolder / 'wiki',
Mensajes keyword:
wikiSubfolder := wikiFolder / 'es' / 'RecuperacionClasesAccesibilidad',
hedgeDoc file: wikiSubfolder / ('Accesibilidad-K','.md'). hedgeDoc exportAsFile. hedgeDoc asMarkdeep exportAsFile. wikiSubfolder
Mensajes Binarios:
Mensaje Keyword:
hedgeDocs doWithIndex: [:hedgeDoc :i | hedgeDoc file: wikiSubfolder / ('semanti', i asString, '.md').
Character alphabet copyFrom: 1 to: 23
Shortener enlarge: commonAddress, letter asString
Shorternerenlarge:commonAddress, letter asStringhedgeDocs doWithIndex: [:hedgeDoc :i | hedgeDoc file: wikiSubfolder / ('acceso23-', i asString, '.md'). hedgeDoc exportAsFile. hedgeDoc asMarkdeep exportAsFile. ].
Mensaje en cascada
Receptor: hedgeDocs doWithIndex:
Argumento: [:hedgeDoc :i | hedgeDoc file: wikiSubfolder / ('acceso23-', i asString, '.md'). hedgeDoc exportAsFile. hedgeDoc asMarkdeep exportAsFile. ].
Mensaje: exportAsFile.
wikiSubfolder := wikiFolder / 'es' / 'Acceso2023'.
Mensaje keyword
Receptor: wikiSubfolder :=
Mensaje: wikiFolder
Argumento: 'es' / 'Acceso2023'.
wikiFolder := repositoryFolder / 'wiki'.
Mensaje keyword
Receptor: wikiFolder :=
Mensaje: repositoryFolder
Argumento: 'wiki'.
repositoryFolder := FileLocator documents / 'RepositorioKath/home/'.
Mensaje keyword
Receptor: repositoryFolder :=
Mensaje: FileLocator documents
Argumento: 'RepositorioKath/home/'.
dataWeekDailyNoteAddresses := (daysIndexes collect: [:letter | (Shortener enlarge: commonAddress, letter asString) ]) select: [:each | each beginsWith: 'https' ]
Mensaje en cascada y keyword.
Receptor: dataWeekDailyNoteAddresses :=
Mensaje: (daysIndexes collect: y (Shortener enlarge: commonAddress, letter asString)
Argumento: [:each | each beginsWith: 'https' ]
hedgeDocs := dataWeekDailyNoteAddresses collectWithIndex: [:address :i | | hedgeDoc | hedgeDoc := HedgeDoc new url: address; retrieveContents. hedgeDoc metadata at: 'title' put: ('Acceso 23: día ', i asString). hedgeDoc ]
Mensaje en cascada y keyword.
Receptor: hedgeDocs :=
Argumento: at: 'title' put: ('Acceso 23: día ', i asString).
Mensaje: collectWithIndex: y retrieveContents.
daysIndexes := (Character alphabet copyFrom: 1 to: 12) asUppercase asOrderedCollection. commonAddress := 'https://is.gd/acceso23'.
Mensaje keyword
Receptor: daysIndexes :=
Argumento: (Character alphabet copyFrom: 1 to: 12)y commonAddress := 'https://is.gd/acceso23'.
Mensaje: asUppercase asOrderedCollection.
Mensaje binario
Receptor: commonAddress :=
Argumento: 'https://is.gd/acceso23'.