Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Problema con Haskell
Autor Mensaje
sentey Sin conexión
Presidente del CEIT
fressi renunciessi abandonessi
********

Análisis de Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.502
Agradecimientos dados: 123
Agradecimientos: 189 en 129 posts
Registro en: Aug 2010
Facebook Google+ LinkedIn Twitter YouTube
Mensaje: #1
Problema con Haskell
Buenas, alguno me explicaría por qué me tira error de "unexpected ;" en esa linea?
(en el Hugs dice eso, aca tira otro error en el compilador del foro, pero debe ser lo mismo)

Me lei esto

Spoiler: Mostrar
> fun x
> fun 2 = 34

ERROR "test.lhs" (line 2): Syntax error in input (unexpected `;')

The problem here is that the first line is incomplete. Formatting means that the symbol fun in the second line signals by layout that the construct in the first line is finished. The explicit Haskell symbol for the end of a construct is `;'; hence the message.

Another peculiarity of the system is given by

> fun x
> fun 2 = 34

which is not erroneous. It means the same as

> fun x y 2 = 34

because the second use of fun is treated as a variable!
pero no me ayudo mucho.



--Funciones Auxiliares

esVocal :: Char -> Bool
esVocal c = c == 'a' || c == 'e'|| c == 'i'|| c == 'o'|| c == 'u'

esTropical :: String -> Bool
esTropical sabor = (length sabor > 3) && (esVocal (head sabor))

--1

esTradicional :: ((String, Int), Int, Int, Int) -> Bool
esTradicional (("chocolate", cantChocolate), cantHarina, _, _) = cantChocolate > 2 * (cantHarina)
esTradicional (("frutilla", _), _, 3, _)
esTradicional (("mascarpone", cantMascarpone), _, _, _) = (cantMascarpone >= 300) && (cantMascarpone <= 500)

--2

power :: ((String, Int), Int, Int, Int) -> Int
power (sabor, _, _, calorias) | esTropical sabor = 5
| otherwise = calorias

--3

esMasSana :: ((String, Int), Int, Int, Int) -> ((String, Int), Int, Int, Int) -> Bool
esMasSana ( _, _, harina, calorias) ( _, _, harina2, calorias2) | calorias /= calorias2 = calorias < calorias2
| otherwise = harina < harina2




Alguien me lo moveria a seccion academica? Lo postie aca sin querer

sentey escribió:Voy a cambiar esta firma el día que Me$$i gane un mundial
(Este mensaje fue modificado por última vez en: 13-04-2013 19:53 por sentey.)
13-04-2013 19:47
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rulo Sin conexión
Ultra Nerd Mod
Another green world
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.271
Agradecimientos dados: 48
Agradecimientos: 56 en 33 posts
Registro en: Apr 2009
BlogSpot
Mensaje: #2
RE: Problema con Haskell
Ahi te lo movi.

Por cierto, creo que para la primer funcion (es vocal) te conviene usar elem que te dice si un elemento esta o no en una lista.
Asi te ahorras el hacer la comparacion por OR que (me parece) es muchisimo mas engorrosa.
(ademas esto es mas generico, no te va a pasar con vocales pero si tenes que chequear si algo esta en una lista y esa lista se agranda estarías al horno).


esVocal :: Char -> Bool
esVocal c = elem c ['a','e','i','o','u']



Por cierto...¿En que linea te tira el error el HUGS? No lo veo en el compilador del foro =P (bah, veo otro error que nada que ver).
El error que me tira a mi el compilador del foro debe ser porque usa GHC y se queja de que no hay un main (o sea, compila en vez de interpretar).

Cita:"...you can't kill a vegetable by shooting it through the head."
(Este mensaje fue modificado por última vez en: 13-04-2013 20:21 por rulo.)
13-04-2013 20:18
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
sentey Sin conexión
Presidente del CEIT
fressi renunciessi abandonessi
********

Análisis de Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.502
Agradecimientos dados: 123
Agradecimientos: 189 en 129 posts
Registro en: Aug 2010
Facebook Google+ LinkedIn Twitter YouTube
Mensaje: #3
RE: Problema con Haskell
El error que me tira es este:

Cita:prog.hs:14:1: Parse error: naked expression at top level

y se soluciona escribiendo


esTradicional (("frutilla", _), _, 3, _) = True

[/offtopic]

(es decir, agregando el True)

Ah, y no lo hice lo de las vocales como lo dijiste porque aun no dieron listas.

sentey escribió:Voy a cambiar esta firma el día que Me$$i gane un mundial
(Este mensaje fue modificado por última vez en: 15-04-2013 22:06 por rulo.)
14-04-2013 22:52
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rulo Sin conexión
Ultra Nerd Mod
Another green world
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.271
Agradecimientos dados: 48
Agradecimientos: 56 en 33 posts
Registro en: Apr 2009
BlogSpot
Mensaje: #4
RE: Problema con Haskell
Te lo edite porque tenías dos veces lo mismo.

Ok, si, eso es entendible, la función tiene que devolver algo.


esTradicional (("frutilla", _), _, 3, _)


Por si solo no tiene sentido. Tenés un parámetro (que es el objeto...hmm....fruta?) y una funcion, pero sin ningun tipo de retorno.

Cita:"...you can't kill a vegetable by shooting it through the head."
(Este mensaje fue modificado por última vez en: 15-04-2013 22:25 por rulo.)
15-04-2013 22:08
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
sentey Sin conexión
Presidente del CEIT
fressi renunciessi abandonessi
********

Análisis de Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.502
Agradecimientos dados: 123
Agradecimientos: 189 en 129 posts
Registro en: Aug 2010
Facebook Google+ LinkedIn Twitter YouTube
Mensaje: #5
RE: Problema con Haskell
(15-04-2013 22:08)rulo escribió:  Te lo edite porque tenías dos veces lo mismo.

Ok, si, eso es entendible, la función tiene que devolver algo.


esTradicional (("frutilla", _), _, 3, _)


Por si solo no tiene sentido. Tenés un parámetro (que es el objeto...hmm....fruta?) y una funcion, pero sin ningun tipo de retorno.

Que idiota, estaba pensando en Prolog. Muchas gracias!

sentey escribió:Voy a cambiar esta firma el día que Me$$i gane un mundial
(Este mensaje fue modificado por última vez en: 15-04-2013 22:36 por sentey.)
15-04-2013 22:35
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.