{ fighter1 . fighter2 }
Docente @offray que significa o que mensaje se ejecuta cuando colocamos el punto en el medio entre los dos peleadores.
{ fighter1 . fighter2 }
Docente @offray que significa o que mensaje se ejecuta cuando colocamos el punto en el medio entre los dos peleadores.
finalRound := { randomMove value: fighter1 . randomMove value: fighter2
Este comendo me genera un error en Grafoscopio para poder seleccionar el movimiento de los pokemones al azar
:item
Doncente @offray, que la palabra ítem se encuentre antecedida por los dos puntos indica que es como el elemento que vamos a manipular a través del mensaje?
pokemonDataDictionary := [ :name | | dataLink pokemonRawData | dataLink := 'https://pokeapi.co/api/v2/pokemon/', name. pokemonRawData := dataLink asUrl retrieveContents. STONJSON fromString: pokemonRawData ]
Docente @Offray, sobre el siguiente bloque tengo las siguientes inquietudes: 1. técnicamente que significa := ? ya que esta siempre antecede un bloque. 2. con base en el documento Representando y procesando datos en Pharo no veo ejemplos como :name donde los dos puntos anteceden el valor, técnicamente que significa dicho mensaje dentro del boque, es lo referente al elemento que presentará los cambios dentro de un mensaje?
okemonDataDictionary value: 'pikachu'
Durante el ejercicio en Pharo con el documento importado en Glamorus, genera algunos errores al momento de aplicarlo (inspect), sin embargo, se ha corregido moviendo algunos espacios para la correcta ejecución, lo cual se debe validar como resultado de la importación del documento.
#('Eduar Daza' 'Nestor Cristancho' 'Maxi López-Gómez' 'Valentina Vanegas' 'Rubén Torres' 'Thomas Martínez' 'Lizeth Colorado' 'Dario Montenegro' 'Juan Pablo Arias Romero' 'Valentina Penagos Ariza')
En el presente caso podemos ver un ARREGLO, el cual está representado por #( ) y que son maneras de guardar colecciones de información diversa como en este caso se agrupan los repositorios de la clase Unisemánticas. Para mayor información ver el apartado 4.1. del documento [Representando y procesando datos en Pharo] (https://mutabit.com/repos.fossil/labci/doc/25A1/wiki/representando-y-procesando-datos-en-pharo--cek90.md.html)
pokemonDataDictionary := STONJSON fromString: pokemonRawData
A través de este código (STONJSON) podremos sustraer los datos de manera ligera a fin de contar con el diccionario de los datos., por otro lado, para tener una estructura de los datos se recomienda el navegador Mozilla Firefox, toda vez que tiene una interfaz nativa para ver los datos con más facilidad.
A continuación se ilustra un ejemplo de la visualización de JSON:
pokemonExampleLink asUrl retrieveContents
La siguiente operación implica un Receptor(pokemonExampleLink), un Selector (asUrl) y un Argumento (retrieveContents) donde básicamente se interpreta que la operación pokemonRawData indique que la cadena pokemonExampleLink como URL permita la sustracción de los contenidos de https://pokeapi.co/api/v2/pokemon/pikachu
Pokemon
Pokémon es una de las franquicias más populares del mundo del entretenimiento, originada en Japón. El nombre viene de la contracción de "Pocket Monsters" (Monstruos de Bolsillo) y fueron creados en 1996.
ormato ampliamente utilizado en el intercambio de datos en la web
Dicho formato (JSON) también es comúnmente utilizado para el desarrollo de interfaces de programación de aplicaciones (API REST), por ejemplo, en las Bibliotecas universitarias se utiliza usualmente para el vaciado de datos entre los sistemas de información académicos con los ILS para descargar/actualizar los datos de los estudiantes matriculados en una Universidad sin necesidad de hacer cargas por archivo txt, xls, etc.
atRandom
En Pharo, atRandom es un método común que significa "elige un elemento aleatorio" que en este caso se utiliza para la selección aleatoria de los repositorios de los estudiantes, sin embargo, será utilizada para seleccionar aleatoriamente los datos de los Pokemon albergados en Pokeapi.
#(2 3-10 3) collect: [ :each | each * each]
Unario y keyword
1 + 3 negated
1 + 3 negated es binario pero unicamente 3 negated es unario
2 raisedTo: 3 + 2
2 raisedTo: (keyword) y binario (3 + 2)
1 + (3 negated)
1 + (3 negated) binario y 3 negated (unario)
| anArray | anArray := #('first' 'second' 'third' 'fourth'). anArray at: 2
Unario (anArray) anArray := #('first' 'second' 'third' 'fourth'). anArray at: 2 (Keyword)
#(a b c d e f) includesAll: #(f d b)
unario
2 negated raisedTo: 3 + 2
2 negated raisedTo: 3 + 2 unario ( 2 negated raisedTo) y binario (3 + 2)
Point selectors
Unario
true | false
Binario
#(a b c d e f) includesAll: #(f d b)
Binario
SmallInteger maxVal
Unario
25 @ 50
Binario
#(2 33-4 67) collect: [ :each | each abs ]
Keyword
#(1 22 333) at: 2
Keyword
#('' 'World') at: 1 put: 'Hello'
Keyword
3 + 4
Binario
Date today
Unario
anObjecto aMessage anotherObject
Docente @offray para este caso un mensaje se interpretaría 3 (anObjecto) + (aMessage) 2 (anotherobject)?
'Anita lava la tina' reverse.
Docente @offray ¿Cómo aplica la lógica receiver, selector, arguments para este carácter?
Character allByteCharacters
Docente @offray ¿Cómo aplica la lógica receiver, selector, arguments para este carácter?
La vista “Raw” o vista cruda, va a mostrar los elementos principales de ese objeto. En este caso, también coinciden con la vista por omisión (aunque no ocurre así siempre).
Profesor @offray acorde al texto, esto son los atributos de un objeto?
Como dijimos previamente, la narrativas de datos, como la que estás leyendo ahora, escrita en Lepiter, combinan prosa, código, datos y, eventualmente, visualizaciones.
El objetivo de una herramienta como Grafoscopio (inmersa en Glamorous) nos permitirá trabajar las representaciones simbólicas a través de código y las gráficas (a través de visualizaciones.
Inspeccionar
En el dasboard de GTK se puede apreciar que se cuenta con dos opciones para "inspenciionar"
(1/3) + (4/5).
Es necesario aplicar la lógica en las operaciones matemáticas para que las formulas tengan la debida interpretación en Pharo/GT., como ejemplo se aplica una operación que implica el debido uso de los paréntesis para que la operación sea exitosa (2+2/2) + (10) = 12
Ahora ya sabes cómo ejecutar código Pharo.
Sin embargo se agradecería que dentro de la clase se pudieran hacer otros ejemplos ilustrativos para complementar el ejercicio de autoaprendizaje realizado a través de la lectura.
La vista “Print” o de impresión va a mostrar cómo se vería ese objeto si se imprimieran sus contenidos.
Profesor @offray acorde al texto, esto no es lo mismo que los atributos de un objeto?
Y la vista “Meta”, corresponde al vocabulario que el objeto entiende, organizado por temáticas (veremos más al respecto luego).
Profesor @offray acorde al texto, estos son los "comandos" que entendería el objeto al momento de darle una indicación o instrucción (método)?
Date today.
Al inspeccionar el comendo Date Today se denota que el aplicativo indica le fecha del día en que se ejecuta la "inspección" en glamorous., por otro lado, se comprende que la vista meta permitió aplicar otro comando, que en este caso es Date Tomorrow donde se indica cual sería la fecha del día siguiente., lo que permite tener una mayor comprensión de los diferentes comandos que entiende un objeto de aprendizaje acorde a la forma en que se construye por parte del programador.
lan Kay dice que, desafortunadamente, cuando el ayudó a nombrar la Programación Orientada a Objetos, eligió un mal nombre, pues debió ser Programación Orientada a Mensajes, pues los objetos son una idea menor y lo clave son los mensajes
Se comparte la postura de Alan Kay ya que los objetos pueden colaborar entre a través de los mensajes, lo que facilita la modularidad, el mantenimiento y la flexibilidad del sistema.
Desde GToolkit, al cliquear en el triangulito, podemos ver el método.
Una vez dado el mensaje para el caso "retrieve contents" en GToolkit, se puede denotar como operativizar dicho mensaje a través de el método, el cual por medio del código recibe las instrucciones de cómo hacerlo.
Cuando nos familiaricemos en detalla con Pharo Smalltalk nos adentraremos en los mensajes y los métodos. Sin embargo, en los ejemplos vistos hasta el momento ya hemos usado mensajes, que se muestran a continuación subrayados en rosado
Los mensajes retrieve contents (recuperar contenido), collect (recolectar), asString (como secuencia) son la interpretación de lo que deseamos que el objeto realice en código.
Todo es un mensaje y todo es un objeto Los objetos pueden comunicarse con otros objetos o consigo mismo. Los objetos tienen características reflexiva o de introspección: saber sobre su propio estado.
Con base en el video Object Oriented Programming is not what I thought, la comunicación genera interacción entre los objetos, lo cual le permite al programador contar con los mecanismos necesarios para resolver problemas del mundo real a través de un paradigma que es moldeable, y que de alguna manera, genera relación con otros objetos.
a la biología: pues tenemos un conjunto de entidades, permeables, cerradas y con funcionamiento propio, como las células. a la mátemática: pues tenemos un conjuto de mensajes que permite operar a las entidades anterior, similares a las álgebras.
Haciendo un comparativo con lo expuesto por Anjana Vakil en el video de los paradigmas, los equipos de cómputo pueden operar como objetos que tienen unas propiedades (similar a la POO), lo cual les permite ser interactuar, ser moldeables y escalables.
Alan Kay
Influyente científico de la computación, reconocido principalmente por su trabajo en el desarrollo de conceptos clave relacionados con la programación orientada a objetos.
Según Alan Kay, la computación tiene una definición recursiva: un computador está hecho computadores más pequeños que se envían mensajes entre sí
Con base en el video Object Oriented Programming is not what I thought la POO opera de similar manera a la definición de computación, toda vez que existe una representación de relaciones y comunicación de los objetos/computadores a través de protocolos de mensajería para conformar grandes redes.
1.0.1604
Actualmente está en la versión 1.0.1633 (28/03/2025)
tecnologísa
Pharo Smalltalk.
es una implementación multiplataforma del clásico lenguaje de programación
libretas computacionales.
es un entorno de cuaderno virtual utilizado para la programación, un ejemplo es el Proyecto Jupiter que hace referencia a los tres lenguajes de programación principales que soporta: Julia , Python y R.
o no sólo que cuenta c
innovación abierta y comunitaria
Esta línea promueve la colaboración entre las comunidades y las empresas para resolver problemas y crear soluciones innovadoras.