- May 2024
-
chiselapp.com chiselapp.com
-
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étodoto
es el11
, Esto indica que la secuencia de números enteros debe ir desde 1 hasta 11 inclusive.
-
-
chiselapp.com chiselapp.com
-
memories do: [:doc | | fileName | fileName := (doc url asString splitOn: $:) last , '.md'. doc file: folder / fileName. doc exportAsFile. ]
Es un mensaje tipo keyword
- El objeto es:
memories
- El mensaje es:
do
- El argumento del mensaje
do
es el bloque proporcionado entre corchetes[:doc | .... ]
aquí el iterador es eldo
, el cual se utiliza para recorrer cada elemento de la colección o objetomemories
y ejecutar el bloque proporcionado para cada uno de ellos.
Resultado devuelto al ejecutar todo el bloque:
- El objeto es:
-
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
- Objeto (receptor): es
memories
el cual invoca el método. - Mensaje (selector) es
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. - Argumento: Es el mensaje
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, yindex
, que representa el índice del elemento en la colección.
Dentro del bloque: * El objeto
item
es el elemento actual de la colecciónmemories
. * El mensaje enviado esmetadata
, que es un mensaje enviado al objeto item. Este mensaje obtiene los metadatos asociados con el elemento actual. * El argumento del mensajeat: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:
- Objeto (receptor): es
-
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 variabledoc
. 2. Ahora el mensajes new envían varios mensajes al objetodoc
: tales como: *url
: Configura la URL del objetodoc
. Toma como argumento la concatenación decommonAddress
(una dirección común) y la representación de cadena desession
. * Ahora utilizaretrieveContents
: el cual es un mensaje que permite recuperar el contenido de la URL configurada en el objetodoc
.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 esto
* y el argumento pasado por el métodoto
es el11
, Esto indica que la secuencia de números enteros debe ir desde 1 hasta 11 inclusive.
-
- Apr 2024
-
chiselapp.com chiselapp.com
-
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 esto
* y el argumento pasado por el métodoto
es el11
, Esto indica que la secuencia de números enteros debe ir desde 1 hasta 11 inclusive.
-
- May 2023
-
chiselapp.com chiselapp.com
-
(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]
-
-
chiselapp.com chiselapp.com
-
hedgeDoc metadata at: 'title' put: ('Sesión del 17 de marzo').
Mensaje unario:
- receptor:
hedgeDoc
- mensaje:
metadada
Mensaje Keword:
- receptor:
hedgeDoc metadata
- mensaje:
at: put:
- argumentos:
'title'
'Sesión del 17 de marzo'
- receptor:
-
hedgeDoc := HedgeDoc new url: 'https://docutopia.sustrato.red/accesibilidad:23K?both# '; retrieveContents.
Mensaje unario:
- receptor:
hegeDoc
- mensaje:
retrieveContents
Mensaje Keyword:
- receptor:
hegeDoc
- mensaje:
url:
- argumento:
https://docutopia.sustrato.red/accesibilidad:23K?both#
- receptor:
-
repositoryFolder := FileLocator documents / 'Acceso\kathy29-wikilexias\'. wikiFolder := repositoryFolder / 'wiki'. wikiSubfolder := wikiFolder / 'es' / 'RecuperacionClasesAccesibilidad'. wikiSubfolder ensureCreateDirectory
Mensajes keyword:
- receptor repositoryFolder :=
- mensaje: FileLocator documents
- argumento: 'Acceso\kathy29-wikilexias\'.
Mensajes Binarios:
wikiFolder := repositoryFolder / 'wiki',
- receptor: repositoryFolder
- argumento: 'wiki'.
Mensajes keyword:
wikiSubfolder := wikiFolder / 'es' / 'RecuperacionClasesAccesibilidad',
- receptor: wikiFolder
- argumentos: 'es' y 'RecuperacionClasesAccesibilidad'
-
hedgeDoc file: wikiSubfolder / ('Accesibilidad-K','.md'). hedgeDoc exportAsFile. hedgeDoc asMarkdeep exportAsFile. wikiSubfolder
Mensajes Binarios:
- receptor: wikiSubfolder
- argumentos: ('Accesibilidad-K', '.md').
Mensaje Keyword:
- receptor: hedgeDoc
- mensaje: asMarkdeep
- argumento adicional: exportAsFile.
-
-
chiselapp.com chiselapp.com
-
hedgeDocs doWithIndex: [:hedgeDoc :i | hedgeDoc file: wikiSubfolder / ('semanti', i asString, '.md').
- receptor: hedgeDocs
- mensaje: doWithIndex:
- argumento:[:hedgeDoc :i |
- hedgeDoc file: wikiSubfolder / ('semanti', i asString, '.md').
-
Character alphabet copyFrom: 1 to: 23
- receptor: Character alphabet
- mensaje: copyFrom:to:
- argumento: 1, 23
-
Shortener enlarge: commonAddress, letter asString
- receptor:
Shorterner
- mensaje:
enlarge:
- argumento:
commonAddress, letter asString
- receptor:
-
-
Local file Local file
-
hedgeDocs 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'.
-