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
Ayuda con ej. de recursividad
Autor Mensaje
agusbrand Sin conexión
Profesor del Modulo A

*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 220
Agradecimientos dados: 104
Agradecimientos: 55 en 19 posts
Registro en: Dec 2010
Mensaje: #1
Ayuda con ej. de recursividad Ejercicios Paradigmas de Programación
Es del parcial Ratones Paranoicos:
http://www.pdep.com.ar/ParcialFuncionalS...edirects=0

Mi problema esta en como hacer la funcion recursiva del punto 4, sería la tercer función que se llama contieneA
La hice de una forma no recursiva así:

contieneA pass palabra = palabra elem (tails pass)

Pero no me esta saliendo la forma recursiva... alguien me podria dar una mano?

Muchas Gracias
19-05-2013 13:43
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
odin Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 38
Agradecimientos dados: 2
Agradecimientos: 11 en 11 posts
Registro en: May 2011
Mensaje: #2
RE: Ayuda con ej. de recursividad
lo que podes hacer para hacerlo recursivo es no usar elem
comprobas con la cabeza de tails pass y si no volves a llamar a contieneA con la cola de tails pass

algo asi

contieneA pass palabra | (head.tails) pass = palabra
| contieneA (tail.tails) pass palabra
contieneA [] _ = false
19-05-2013 14:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rodam Sin conexión
Militante
O(n)
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 72
Agradecimientos dados: 12
Agradecimientos: 4 en 4 posts
Registro en: Jan 2012
Mensaje: #3
RE: Ayuda con ej. de recursividad
La resolucion con recursividad yo la haria asi:


contieneA string1 [] = False
contieneA string1 string2
| length string1 > length string2 = False
| take (length string1) string2 == string1 = True
| otherwise = contieneA string1 (drop (length string1) string2)



Ahora que me fijo, está mal, ponele que yo tengo el string "baTuVieja" y el string "TuVieja", si yo le paso esos strings la funcion me va a devolver falso, que pajaaaaa
Creo que funcionaria comparar elemento por elemento hasta el final de la lista, igual te lo dejo a vos, me fui a seguir preparando el final de algoritmos jaja


edit: ahora que miro de nuevo, estan usando tails, no tail, que salame, yo nunca use funciones que sean de un modulo distinto del prelude, no sabia que se podia jajajaj
edit2: re que estaba en el enunciado :facepalm:
(Este mensaje fue modificado por última vez en: 19-05-2013 18:59 por rodam.)
19-05-2013 18:53
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: #4
RE: Ayuda con ej. de recursividad
Es sencillo si usás las funciones que definiste antes:


contieneA _ [] = True
contieneA [] _ = False
contieneA palabra contenida = empiezaCon palabra contenida || contieneA palabra (tail contenida)



Tratá de hacer vos la funciòn empiezaCon.
Por si no la sacás está acá:
Spoiler: Mostrar

empiezaCon _ [] = True
empiezaCon [] _ = False
empiezaCon (x:xs) (c:cs)
| x == c = empiezaCon xs cs
| otherwise = False


Saludos!
20-05-2013 13:40
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.