Material

Wollok

Vas a tener que instalarte Wollok. En la sección Videos encontrarás las instrucciones tanto para Windows como Linux. También recomendamos leer detalladamente las instrucciones de instalación publicadas en la página de Wollok donde se incluyen otras alternativas de instalación.

En principio recomendamos los apuntes publicados en el sitio de Wollok. Además, tenemos estos recursos:


Sintaxis basica

Objeto con un atributo y dos métodos

object pepita { 
	var energia = 0 
	method volar(kilometros) { 
		energia += kilometros 
		} 
	method puedeVolar() { 
		return energia > 0 
	} 
}

Comentario

// un comentario
/* un comentario  
multilínea */

Strings

"una Cadena"
'una Cadena'

Booleanos

true false

Conjunto

#{}
#{1, 2}

Lista

[]
[1, 1, 2]

Bloques sin parámetros

{algo}

Bloques / Exp. lambda (De un parámetro)

{x => algo con x}

Bloques / Exp. lambda (Más de un parámetro)

{x, y => algo con x e y}

Operadores lógicos y matemáticos

Equivalencia

==

Identidad

===

Equivalencia

!=

Comparación de orden

> >= < <=

Disyunción, 'O' lógico

|| or

Conjunción, 'Y' lógico

&& and

Negación

!unBool   
unBool.negate()   
not unBool

Operadores aritméticos

+ - * /

División entera

dividendo.div(divisor)

Resto

dividendo % divisor

Valor absoluto

unNro.abs()

Exponenciación

base ** exponente

Raíz cuadrada

unNro.squareRoot()

Máximo entre dos números

unNro.max(otroNro)

Mínimo entre dos números

unNro.min(otroNro)

Verificar si un número está entre otros dos

unNro.between(uno, otro)

Par

unNro.even()

Impar

unNro.odd()

Operaciones simples sin efecto sobre colecciones/listas

Longitud

coleccion.size()

Si está vacía

coleccion.isEmpty()

Concatenación

coleccion + otraColeccion

Unión

set.union(coleccion)

Intersección

set.intersection( coleccion)

Acceso por índice

lista.get(indice)

Pertenencia

coleccion.contains(elem)

Máximo

coleccionOrdenable.max()

Minimo

coleccionOrdenable.min()

Aplanar

coleccionDeColecciones.flatten()

Primeros n elementos

lista.take(n)

Primer elemento

lista.head() 
lista.first()

Último elemento

lista.last()

Sin repetidos

coleccion.asSet()

Operaciones avanzadas (de orden superior) sin efecto sobre colecciones/listas

Sumatoria según transformación

coleccion.sum(bloqueNumericoDe1)

Filtrar

coleccion.filter(bloqueBoolDe1)

Transformar

coleccion.map(bloqueDe1)

Todos cumplen

coleccion.all(bloqueBoolDe1)

Alguno cumple

coleccion.any(bloqueBoolDe1)

Transformar y aplanar

coleccion.flatMap(bloqueDe1)

Reducir/plegar a izquierda

coleccion.fold(valInicial, blqDe2)

Primer elemento que cumple condición

coleccion.find(bloqueBoolDe1)  
coleccion.findOrElse({bool}, {})

Cantidad de elementos que cumplen condición

coleccion.count(bloqueBoolDe1)

Obtener colección ordenada

coleccion.sortedBy(bloqueBoolDe2)

Máximo según criterio

coleccion.max(bloqueOrdenableDe1)

Mínimo según criterio

coleccion.min(bloqueOrdenableDe1)

Mensajes de colecciones con efecto

Agregar un elemento.

coleccion.add(objeto)

Agregar todos los elementos de la otra colección.

coleccion.addAll(otraColeccion)

Evaluar el bloque para cada elemento.

coleccion.forEach({})

Eliminar un objeto.

coleccion.remove(objeto)

Eliminar todos los elementos.

coleccion.clear()

Deja ordenada la lista según un criterio.

lista.sortBy(bloqueBoolDe2)

Git

En esta materia utilizamos Git como herramienta para el control de versiones del código que vas a ir produciendo. El manejo que necesitás es básico, y está explicado en la guía rápida que te ofrecemos más abajo. El resto de los recursos pueden serte útiles si querés profundizar en el conocimiento de la herramienta.

Acá van a poder ver los comandos mas comunes que estaremos utilizando en Git:

Comandos basicos de Git

Clonar repositorio

git clone [URL del repo original]

Nos permite crear una copia local del repositorio original (situado en GitHub).

Agregar archivos al área de preparación (staging area)

git add * .

Con este comando agregamos todos los archivos que deben estar en el 'staging area', es decir, nos va a permitir "preparar" aquellos archivos que modificamos para que los podamos 'enviar' a través del commit.

Hacer commit de los cambios

git commit -m 'mensaje'

Nos permite "actualizar" nuestro repositorio local con aquellos cambios que hayamos realizado. En la parte de 'mensaje' debemos aclarar de manera descriptiva aquello que hayamos modificado, por ejemplo 'git commit -m 'Modifiqué los errores que tenía en la resolución de mi ejercicio''

Subir cambios al repositorio remoto

git push origin [rama]

Esto nos posibilita actualizar el repositorio original que tenemos en GitHub con aquellos cambios que hicimos en nuestro repositorio local. En '[rama]' debemos especificar si se trata de main o master, por ejemplo 'git push origin master'

Obtener cambios del repositorio remoto

git pull

Nos permite bajar de GitHub todos los cambios que recibió nuestro proyecto. Nos servirá cuando trabajemos en grupo y otra persona realice cambios en el mismo. De esta manera tendremos la versión más reciente del proyecto de manera local.

Configurar nombre de usuario global

git config --global user.name

Ponemos nuestro usuario luego de 'user.name' y cargamos nuestro usuario en nuestra PC PERSONAL.

Configurar correo electrónico global

git config --global user.email

Ponemos nuestro mail luego de 'user.email' y cargamos nuestro mail en nuestra PC PERSONAL.

Aclaración: El "--global" SOLO se utiliza en PC PERSONALES, NO en la Universidad.