UTNianos

Versión completa: [Consulta] Haskell y ejecución de varios comandos en ghci
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola gentes, antes que nada, gracias por la atención y las respuestas.
Por si acaso, leí por algún posto algo como "bienvenido a la facultad, no te vamos a hacer la tarea". No es la idea, je.

Tengo el Haskell y su ghci para consultarlo, decirle qué hacer y que responda, tan amablemente como lo hace. ¿Cómo se puede tirar una secuencia de consultas/ejecuciones? Porque en la línea de comandos del ghci hace de a una...
Digamos, en concreto. Tengo unas funciones que devuelven tipos de datos creados. Si no entiendo mal, no es que "modifican" el que se le pasa a la función, sino que toma ese y hace uno nuevo. Verbigracia:

data Persona = Persona {
nombre::String,
edad::Int,
ganasDeEstudiar::Bool
}

a su vez, podríamos tener una función que le "cambie" las ganas de estudiar:

cambioGanasDeEstudiarSi persona = persona {
ganasDeEstudiar = True
}

Endeahí, tenemos otra que le cambie la edad:

cambioEdad persona nuevaEdad = persona {
edad = nuevaEdad
}

Ahora, sea que estén bien las funciones o no, porque para eso vendrá la corrección del tp (je), ¿Cómo hago por consola de Haskell (ghci) para hacer un programa que:

cree una persona "jorge" que se llama "jorge" (Yes!), tiene 29 años y no ganas de estudiar,
cambioEdad jorge 30
cambioGanasDeEstudiarSi jorge
cambioEdad jorge 31

¿? Porque si hago de a uno, cada vez, jorge se muestra cambiado (el nuevo), pero si el "original" nunca cambia, ergo, es siempre el mismo maldito, sin ganas de estudiar

Espero haberme explicado, persón si no soy claro. Gracias dde nuevo y ¡saludos!
Estás buscando algo similar a esto?

cambioEdad (cambioGanasDeEstudiarSi (cambioEdad jorge 30)) 31
La variable jorge tiene que estar definida previamente, sino no la va a encontrar


> cambioEdad (cambioGanasDeEstudiarSi (cambioEdad jorge 30)) 31
Persona :: {nombre = "jorge", edad = 31, ganasDeEstudiar = true}



La idea de los ejercicios es escribir las funciones que vas a necesitar, y después ejecutar todo en el ghci. El cómo es parte del tp.
Hey, aloha! Gracias por la onda!
Sí, en realidad estaba buscando la forma de no hacer eso, de componer o de tirar funciones anidadas una con otra =S Si son varios los comandos queda muy larga, mucho paréntise, y me asusta (supongamos que tiene que llegar a los 40, teniendo ganas de estudiar alternativamente. En el ejemplo eran 4, pero si fueran 10 quedarían las 10 anidadas... =/ ).
Vi por ahí, pero no entendí muy bien cómo se usa, que hay un "do". En stackoverflow, pero era para definir las funciones por consola, y no ejecutar comandos. Pensaba que por ahí podía hacerse un "test1" dentro del .hs, con los comandos, entonces al ejecutar en ghci se escribe "test1" y tira el resultado final.

Pero, alegría, lo que me han dicho Renkon y Apellidocomplicado va como trompeta.
Xenial, si se hace así, veníamos bien =D

Grazie!
URLs de referencia