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
consulta haskell
Autor Mensaje
gtotaro Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4
Agradecimientos dados: 11
Agradecimientos: 0 en 0 posts
Registro en: Dec 2011
Mensaje: #1
consulta haskell Otro Paradigmas de Programación
--tp N1 Bar funcional

type Nombre = String
type Agregado = String
type Sabor = String
type Azucar = Integer
type Sabores = (String,String)
type Salsa = String

data Promo = Cafe Nombre Azucar | Gaseosa Sabor Azucar |
Helado Sabores Salsa | AguaMineral deriving Show

esRecomendable promo

|calorias promo < 100 && nombre=="Capuchino"= True
|otherwise=False


ERROR:
Prelude> :reload
Ok, modules loaded: none.
Prelude> esRecomendable (Cafe "Capuchino" 30)

<interactive>:11:1: Not in scope: `esRecomendable'

<interactive>:11:17: Not in scope: data constructor `Cafe'
16-04-2014 16:39
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina Sin conexión
Colaborador
❥❥❥❥
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.621
Agradecimientos dados: 1.188
Agradecimientos: 1.398 en 508 posts
Registro en: Sep 2010
Mensaje: #2
RE: consulta haskell
gtotaro
La pregunta es por que te tira eso ?

love
16-04-2014 16:40
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] CarooLina recibio 1 Gracias por este post
gtotaro (18-04-2014)
sentey Sin conexión
Presidente del CEIT
fressi renunciessi abandonessi
********

Análisis de Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.544
Agradecimientos dados: 128
Agradecimientos: 197 en 137 posts
Registro en: Aug 2010
Mensaje: #3
RE: consulta haskell
Tenes, por un lado, error en la indentacion, en haskell trata siempre de hacerlo con espacios (no tabulaciones), y que queden los "palitos" bien alineados, así:



funcion argumento | argumento == 2 = True
| otherwise = False



Por otro lado, tenes varios errores...no está definida la función calorías, y la variable nombre tampoco


Off-topic:
Trata de poner "hola", y describir tu problema un poco, aunque sea, vas a encontrar mejor respuesta acá =)

sentey escribió:Voy a cambiar esta firma el día que Me$$i gane un mundial
(Este mensaje fue modificado por última vez en: 16-04-2014 16:49 por sentey.)
16-04-2014 16:48
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] sentey recibio 1 Gracias por este post
gtotaro (18-04-2014)
gtotaro Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4
Agradecimientos dados: 11
Agradecimientos: 0 en 0 posts
Registro en: Dec 2011
Mensaje: #4
RE: consulta haskell
te paso como lo defini:
calorias (Cafe nombre azucar) = 3*azucar
calorias (Gaseosa sabor azucar) = azucar
calorias (Helado sabores salsa) | sabores==("cereza","chocolate") && salsa == "chocolate" = 370
| sabores==("chocolate","cereza") && salsa == "chocolate" = 370
| otherwise = 220
calorias (AguaMineral) = 0
16-04-2014 17:00
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.544
Agradecimientos dados: 128
Agradecimientos: 197 en 137 posts
Registro en: Aug 2010
Mensaje: #5
RE: consulta haskell
Fijate de indentar bien y de definir todas las funciones necesarias.
Este código debería funcionar, probalo.



type Nombre = String
type Agregado = String
type Sabor = String
type Azucar = Integer
type Sabores = (String,String)
type Salsa = String

data Promo = Cafe Nombre Azucar | Gaseosa Sabor Azucar | Helado Sabores Salsa | AguaMineral deriving Show

esRecomendable promo |calorias promo < 100 && nombre promo =="Capuchino"= True
|otherwise=False



calorias (Cafe nombre azucar) = 3*azucar
calorias (Gaseosa sabor azucar) = azucar
calorias (Helado sabores salsa) | sabores==("cereza","chocolate") && salsa == "chocolate" = 370
| sabores==("chocolate","cereza") && salsa == "chocolate" = 370
| otherwise = 220
calorias (AguaMineral) = 0

nombre (Cafe nombre _) = nombre



sentey escribió:Voy a cambiar esta firma el día que Me$$i gane un mundial
16-04-2014 17:07
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] sentey recibio 1 Gracias por este post
gtotaro (18-04-2014)
gtotaro Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4
Agradecimientos dados: 11
Agradecimientos: 0 en 0 posts
Registro en: Dec 2011
Mensaje: #6
RE: consulta haskell
Finalmente, lo deje así para tome cualquier gusto..
calorias (Cafe _ azucar) = 3*azucar
calorias (Gaseosa sabor azucar) = azucar
calorias (Helado (sabor1,sabor2) salsa) | salsa == "chocolate" && sabor1=="chocolate" || sabor2=="chocolate" = 370
| otherwise = 220
calorias (AguaMineral) = 0

Gracias x la ayuda.
Continuo con el 4)
cualquier cosa,sino te molesta te pregunto...
17-04-2014 13:17
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Ichiluk Sin conexión
Campeon del cubo Rubik
Metametaprogramando.
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 134
Agradecimientos dados: 5
Agradecimientos: 21 en 18 posts
Registro en: Apr 2008
Mensaje: #7
RE: consulta haskell
OJO:

(16-04-2014 16:48)sentey escribió:  Tenes, por un lado, error en la indentacion, en haskell trata siempre de hacerlo con espacios (no tabulaciones)
Esto no es cierto. El los tabs funcionan perfecto, de hecho con tabs queda mucho mas prolijo.

(16-04-2014 16:48)sentey escribió:  , y que queden los "palitos" bien alineados, así:



funcion argumento | argumento == 2 = True
| otherwise = False


Esto es cierto. Otra forma de hacerlo es


funcion argumento
| argumento == 2 = "esDos"
| otherwise = "noEsDos"


[/quote]


Y ojo, porque en la definición de la función que estás haciendo


calorias (Cafe nombre azucar) = 3*azucar
calorias (Gaseosa sabor azucar) = azucar
calorias (Helado sabores salsa) | sabores==("cereza","chocolate") && salsa == "chocolate" = 370
| sabores==("chocolate","cereza") && salsa == "chocolate" = 370
| otherwise = 220


te falta una abstracción. Fijate en todos esos ' == "chocolate" ' ... no te suena a que lo pusiste muchas veces? qué representa que algo de todo eso sea chocolate?
21-04-2014 10:50
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.