Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Consulta ejercicio Funcional de Mumuki
Autor Mensaje
robergto Sin conexión
Militante
La cagué. Sin cursar.
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 87
Agradecimientos dados: 165
Agradecimientos: 8 en 7 posts
Registro en: Aug 2014
Mensaje: #1
Consulta ejercicio Funcional de Mumuki Ejercicios y 1 más Paradigmas de Programación
Aloha Gente! Muchas Gracias por su buena onda, pasada y futura. Hay quienes solo ven como existente el presente, y hay quienes dicen que no existe. Si fuera que lo toman como real, también gracias por la ayuda presente.

Al caso =D Estoy haciendo esto wall con un ejercicio de mumuki. Que, para mejor, manda a leer un apunte en cuyo final figura el mismo ejercicio como desafío thumbup3
Es:
"En Haskell contamos con una función muy poderosa, pero que irónicamente usamos poco: foldl (y varias variantes más).
Y eso se debe a que muchas veces contamos con funciones mucho más específicas que nos permiten resolver nuestra tarea pensando menos. ¡Y eso es bueno!
Pero a veces no podemos zafarla. Por eso, te dejamos este texto para que leas, y cuando vuelvas, un ejercicio:

Escribí la función csv que usamos en el punto anterior, utilizando fold."

Lo que hago es:
csv=foldl (++)

Que, naturalmente, funciona con UNA sola palabra, no con una lista, ya que si se trata de una lista de palabras, las concatena sin más, en una larga y maniática lista. Intenté "agragarle" una coma con : ',' pero no va con nada =P

Y, ya que estoy, relacionado con esto, imagino que así como se puede agregar la ',' se puede agregar otro caracter. Lo que también quisiera preguntar es cómo se hace para llegar a un final. Por ejemplo, en el apunte dice "separar con un espacio las palabras camecase, onda: "holaUtnianosNoEntiendoUnJoracaDeHaskell" debiera quedar en una bonita frase: "hola Utnianos No Entiendo Un Joraca De Haskell", que si tuvieran que ser todas minúsculas, dejo la carrera.

Y, terminando ¿Soy yo solo el que no comprende cómo aplicar la teoría a los ejemplos y ejercicios, tps, parciales? Quiero decir, cómo se puede hacer para mejorar la habilidad... Siento que nos dicen "take this, it's a brick. Und this, it's le glue. Build that tower, you. Now!" Onda que la complejidad de los ejemplos de los apuntes está muchos niveles por debajo de lo requerido para resolver un tp, incluso los ejercicios "sencillos" como los que presento... Explican que fold "aplana" una lista y te mandan a meterle una coma por entremedio =P wall

¡Muchas Gracias! =)
22-05-2018 18:26
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Phiiliip077 Sin conexión
Secretario de la SAE
1 a la vez
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 549
Agradecimientos dados: 54
Agradecimientos: 373 en 221 posts
Registro en: Oct 2016
Facebook Twitter
Mensaje: #2
RE: Consulta ejercicio Funcional de Mumuki
Buenas.

Como consejo de acá a futuro con haskell, cada vez que tengas que buscar una función nueva busca de la siguiente forma:

"NombreFuncion" ZVON

Esta pagina te da un claro ejemplo de como se implementa.

En cuanto a tu ejemplo de Foldl, la cosa es así mas o menos:

La función FOLDL toma 3 parámetros:

1) Función que queres foldear
2) Semilla (Es decir, valor inicial sobre el que se va a aplanar la lista)
3) La lista propiamente dicha

Así que tu función debería quedar algo así

csv = foldl (funcion) (semilla) (lista)

Te recomiendo que lo vuelvas a pensar sabiendo esto, ya que entender los parámetros de las funciones es una de las bases de la materia.

Saludos
23-05-2018 00:35
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Phiiliip077 recibio 1 Gracias por este post
robergto (23-05-2018)
robergto Sin conexión
Militante
La cagué. Sin cursar.
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 87
Agradecimientos dados: 165
Agradecimientos: 8 en 7 posts
Registro en: Aug 2014
Mensaje: #3
RE: Consulta ejercicio Funcional de Mumuki
Aloha Phiiliip077 ! Tante grazie por tu respuesta.

Buenísimo lo del ZVON, me será de suma utilidad, sobre todo con el tema de "adivinar" de qué van esos ejercicios tipo "función loca x z t a g = algoquenocomprendo"

Te cuento, sin ánimos de "desagradecer", que justamente ESE es el problema, no puedo pasar de las definiciones a los casos particulares. Entiendo lo de la función, la semilla y la lista. Con un ejemplo sencillo, como los de clase o de los apuntes, tipo "foldl (+1) 0 [1..10]" veo con cierta claridad lo que hace y si me dicen "modelá la función siguiente con foldl" me defiendo...
El tema es cuando son más complejas, como este caso, que hay que concatenar una ',' en el medio de cada palabra (sería como... "siguiente, pero con un # entre cada número" o algo similar). Viendo las definiciones de las funciones, no comprendo cómo hacer que un deportista entrene, o que un chico coma golosinas, o cosas por el estilo... Como que me falta el "eslabón perdido", ejercicios de complejidad media, que la compliquen un poquito. Pero no tanto. Siento que los ejemplos del apunte son de complejidad 0/1 y los de los tps/parciales son de complejidad 10/11. Me faltaría el de 3/4 y de 6/7, como para ir complejizando la cuestión y poder comprenderlo...

Gracias, de nuevo. Muy apreciado lo del ZVON, tu respuesta y la buena onda. Ah, y pensé que la semilla fuera la coma, pero =P JE

Salú!
23-05-2018 11:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
fav Sin conexión
Militante
Sin Estado, podría ser el nom...
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 93
Agradecimientos dados: 2
Agradecimientos: 26 en 15 posts
Registro en: Apr 2015
Mensaje: #4
RE: Consulta ejercicio Funcional de Mumuki
Cita:Lo que hago es:
csv=foldl (++)
Que, naturalmente, funciona con UNA sola palabra, no con una lista, ya que si se trata de una lista de palabras, las concatena sin más, en una larga y maniática lista. Intenté "agragarle" una coma con : ',' pero no va con nada =P

Cita:El tema es cuando son más complejas, como este caso, que hay que concatenar una ',' en el medio de cada palabra (sería como... "siguiente, pero con un # entre cada número" o algo similar).

Válido en gral: Cuando un problema es medio engorroso de entender de un tirón o tenes varias cosas que hacer para mi la clave está en dividir en pequeños subproblemas más fáciles de entender y atacar al estilo algoritmos. Para ésto delegar te va a servir mucho, ya que no solo te sirve para evitar repetir código, como seguro te dijeron varias veces en paradigmas, sino también te da esa abstracción que te hace falta para separar los componenetes de tu problema y entenderlos como si estuvieras leyendo el enunciado de vuelta pero en código.

Cita:csv=foldl (++)


Parecería que querés aplicar foldl1 en lugar de foldl, la única diferencia entre estos 2 es que foldl te pide un elemento inicial (hay un ejemplo de c/u en el apunte linkeado del ejercicio) mientras que fold1 usa solo los elementos de tu lista.
La parte de delegar: fijate que por un lado queres aplicar el fold sobre una lista y bla y por otro esta la parte de concatenar una coma entre 2 valores (función binaria ideal para pasarle al fold), molesta en el medio del problema, entonces en vez del (++) otra opción puede ser:


csv = foldl1 agregarComa


Se ve más simple ahora. =P
(Este mensaje fue modificado por última vez en: 23-05-2018 12:10 por fav.)
23-05-2018 12:08
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Phiiliip077 Sin conexión
Secretario de la SAE
1 a la vez
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 549
Agradecimientos dados: 54
Agradecimientos: 373 en 221 posts
Registro en: Oct 2016
Facebook Twitter
Mensaje: #5
RE: Consulta ejercicio Funcional de Mumuki
(23-05-2018 11:03)robergto escribió:  Aloha Phiiliip077 ! Tante grazie por tu respuesta.

Buenísimo lo del ZVON, me será de suma utilidad, sobre todo con el tema de "adivinar" de qué van esos ejercicios tipo "función loca x z t a g = algoquenocomprendo"

Te cuento, sin ánimos de "desagradecer", que justamente ESE es el problema, no puedo pasar de las definiciones a los casos particulares. Entiendo lo de la función, la semilla y la lista. Con un ejemplo sencillo, como los de clase o de los apuntes, tipo "foldl (+1) 0 [1..10]" veo con cierta claridad lo que hace y si me dicen "modelá la función siguiente con foldl" me defiendo...
El tema es cuando son más complejas, como este caso, que hay que concatenar una ',' en el medio de cada palabra (sería como... "siguiente, pero con un # entre cada número" o algo similar). Viendo las definiciones de las funciones, no comprendo cómo hacer que un deportista entrene, o que un chico coma golosinas, o cosas por el estilo... Como que me falta el "eslabón perdido", ejercicios de complejidad media, que la compliquen un poquito. Pero no tanto. Siento que los ejemplos del apunte son de complejidad 0/1 y los de los tps/parciales son de complejidad 10/11. Me faltaría el de 3/4 y de 6/7, como para ir complejizando la cuestión y poder comprenderlo...

Gracias, de nuevo. Muy apreciado lo del ZVON, tu respuesta y la buena onda. Ah, y pensé que la semilla fuera la coma, pero =P JE

Salú!

Buenas.

El problema con este ejercicio es que tu problema es el que le pasa a muchos, que vienen de pensar de una forma la programación muy estructurada y llegas a PDEP y te das cuenta de otro mundo.

Fijate, en tu caso, si eso de la ',' entre cada palabra, lo podes delegar en otra función, es decir, no hacerlo dentro del foldl, ya que es mas sencillo de esa manera.

SIEMPRE, como regla general en todo PDEP, cuando se te vuelve muy compleja una función, descomprimila en varias funciones que hagan partes de la totalidad que necesitas.

Por ejemplo, si queres pasar a mayuscula y concatenar una lista de strings, lo mejor q podes hacer es : Primero pasar a mayuscula (una funcion) y acto siguiente concatenarla

Si logras hacer esto, vas a aprobar el paradigma sin ningún problema ya que se basa en eso.

Sinceramente, darte la solución servida no te aporta nada y encima te perjudica a futuro.

Cualquier duda te podemos ayudar igualmente.
23-05-2018 14:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
robergto Sin conexión
Militante
La cagué. Sin cursar.
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 87
Agradecimientos dados: 165
Agradecimientos: 8 en 7 posts
Registro en: Aug 2014
Mensaje: #6
RE: Consulta ejercicio Funcional de Mumuki
¡Vamos! ¡Qué buena onda!
Impecable, might I add. Por un lado, fav "Válido en gral: Cuando un problema es medio engorroso de entender de un tirón o tenes varias cosas que hacer para mi la clave está en dividir en pequeños subproblemas más fáciles de entender y atacar al estilo algoritmos. Para ésto delegar te va a servir mucho, ya que no solo te sirve para evitar repetir código, como seguro te dijeron varias veces en paradigmas, sino también te da esa abstracción que te hace falta para separar los componenetes de tu problema y entenderlos como si estuvieras leyendo el enunciado de vuelta pero en código." Justamente, ESE es mi problema, me cuesta ver las cosas como algo más simple. Como decía, en este ejemplo, por estúpido que parezca (o lo sea, je), no veía lo de "agregarComa", sino que veía "concatenar" y cómo carahos concateno con una coma en el medio =P
Por su parte, Phiiliip077 no podés estar más en lo cierto, respecto a: "Sinceramente, darte la solución servida no te aporta nada y encima te perjudica a futuro." Justamente eso es lo que intento hacer, y que intenté preguntar. Cómo comprender los problemas, para poder atacar cualquiera. Sí, es cierto que si te muestran cómo resolver un problema, aprendés, porque ves cómo se hizo; pero no menos cierto es que si cada uno viene con su solución, termina uno por no aprender nada, y pero, no se comprende, que es lo que busco. Y, tal cual, con POCA experiencia en programación estructurada, llegué a PdP y empecé a llorar =D Hay ejercicios de mumuki (quizá no sea lo mío, pfff) que tardé días en entenderlos =D

Por ejempio, para entender que las funciones no modifican los valores, sino que devuelven OTROS, distintos... tardé como un mes (posta). Una cosa es repetirlo como Loretto, y otra es comprenderlo realmente, y que no sé si lo dije (jeje), es lo que busco. Imagino a los profes también les pasará, de intentar ue comprendamos, y que no repitamos las cosas...

Muchas Gracias, nuevamente, a los dos por la buena y por las respuestas.

=D thumbup3
23-05-2018 16:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
robergto Sin conexión
Militante
La cagué. Sin cursar.
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 87
Agradecimientos dados: 165
Agradecimientos: 8 en 7 posts
Registro en: Aug 2014
Mensaje: #7
RE: Consulta ejercicio Funcional de Mumuki
Say, aloha nuevamente =D

Me olvidé preguntar ¿Podrían decirme, según su parecer, ¿cómo estudiar? ¿De dónde estudiar? Porque en la materia nos dieron a leer los apuntes que están en la página pdep, y no mucho más. Andan dando vueltas unas guías que no recomendaron, aunque las leí (muy "generales", buenas nevertheless). Hay un libro/página, que recomendaron. Es larguísimo, y no ayuda en mucho a cómo están planteados los ejercicios. Digamos, que el libro es exhaustivo en lo referido al lenguaje, pero no ayuda en mucho a cómo aplicarlo a los planteos... Hay una(s) guía(s) de ejercicios en pdep, pero me pasa igual que con el mumuki (muchos ejercicios son iguales). Algunos los comprendo, pero en otros no sé por dónde arrancar, so to say, cómo "descomponerlos". Y ahí quedo. Si pregunto, con la mejor, me contestan parecido a lo que ustedes me dijeron. Y, no me ayuda demasiado, al caso, sigo sin entender cómo poner la coma en medio de las dos palabras (je).

Realmente quiero aprobar la materia, y quiero aprobarla porque quiero aprender y comprender los conceptos, y el paradigma (je, digamos que sería aprobar.aprender =P ). Y me quedo muy trabado con los ejercicios, no "veo" muy bien cómo aplicar la teoría, o como decía, de ejercicios sencillos pasar a los tps/parciales. Eso me desmotiva, ahí ya el problema es mío, y entro en el círculo maniático de no resolver ejercicios/no entenderlos.

Por ejemplo, con C no me pasa eso. Por un lado, el profe da unas guías que van "llevando" de menor a mayor (y sí, explica muchas cosas sencillas como recorrer un array, o intercambiar los valores de dos variables, muestra el código y gracias a eso entiendo). Y si algo no comprendo, como en el libro de Ritchie, voy a otro libraco y está explicado. Vuelvo al Ritchie y digo "oh, vaya". Los "problemas" quizá sean diferentes ("Ingresar números por teclado hasta que se corte con 0 y devolver la sumatoria, el promedio y cuántos números se ingresaron"), pero no sé...

Any suggestion, mostly willcomen.

¡Gracias! =)
24-05-2018 09:19
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Phiiliip077 Sin conexión
Secretario de la SAE
1 a la vez
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 549
Agradecimientos dados: 54
Agradecimientos: 373 en 221 posts
Registro en: Oct 2016
Facebook Twitter
Mensaje: #8
RE: Consulta ejercicio Funcional de Mumuki
(24-05-2018 09:19)robergto escribió:  Say, aloha nuevamente =D

Me olvidé preguntar ¿Podrían decirme, según su parecer, ¿cómo estudiar? ¿De dónde estudiar? Porque en la materia nos dieron a leer los apuntes que están en la página pdep, y no mucho más. Andan dando vueltas unas guías que no recomendaron, aunque las leí (muy "generales", buenas nevertheless). Hay un libro/página, que recomendaron. Es larguísimo, y no ayuda en mucho a cómo están planteados los ejercicios. Digamos, que el libro es exhaustivo en lo referido al lenguaje, pero no ayuda en mucho a cómo aplicarlo a los planteos... Hay una(s) guía(s) de ejercicios en pdep, pero me pasa igual que con el mumuki (muchos ejercicios son iguales). Algunos los comprendo, pero en otros no sé por dónde arrancar, so to say, cómo "descomponerlos". Y ahí quedo. Si pregunto, con la mejor, me contestan parecido a lo que ustedes me dijeron. Y, no me ayuda demasiado, al caso, sigo sin entender cómo poner la coma en medio de las dos palabras (je).

Realmente quiero aprobar la materia, y quiero aprobarla porque quiero aprender y comprender los conceptos, y el paradigma (je, digamos que sería aprobar.aprender =P ). Y me quedo muy trabado con los ejercicios, no "veo" muy bien cómo aplicar la teoría, o como decía, de ejercicios sencillos pasar a los tps/parciales. Eso me desmotiva, ahí ya el problema es mío, y entro en el círculo maniático de no resolver ejercicios/no entenderlos.

Por ejemplo, con C no me pasa eso. Por un lado, el profe da unas guías que van "llevando" de menor a mayor (y sí, explica muchas cosas sencillas como recorrer un array, o intercambiar los valores de dos variables, muestra el código y gracias a eso entiendo). Y si algo no comprendo, como en el libro de Ritchie, voy a otro libraco y está explicado. Vuelvo al Ritchie y digo "oh, vaya". Los "problemas" quizá sean diferentes ("Ingresar números por teclado hasta que se corte con 0 y devolver la sumatoria, el promedio y cuántos números se ingresaron"), pero no sé...

Any suggestion, mostly willcomen.

¡Gracias! =)

Buenas.

Te voy a pasar lo que se me ocurrió a mi, en este caso uso Foldl1, ya que empiezo a concatenar a partir de la primera palabra de la lista.



csv :: [String] -> String
csv lista = foldl1 ((++).agregarComa) lista

agregarComa :: String -> String
agregarComa palabra = palabra ++ ","


Fijate que ahi descompuse en (++) para concatenar y (agregarComa) para darle una coma al final de cada palabra.

Haciendo la prueba :

csv ["hola","como","andas"] da como resultado = ["hola,como,andas"]

Saludos
24-05-2018 14:38
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Phiiliip077 recibio 1 Gracias por este post
robergto (05-06-2018)
fav Sin conexión
Militante
Sin Estado, podría ser el nom...
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 93
Agradecimientos dados: 2
Agradecimientos: 26 en 15 posts
Registro en: Apr 2015
Mensaje: #9
RE: Consulta ejercicio Funcional de Mumuki
No hay truco, seguí practicando nomas, quizás ahora no entendés pero en un momento de practicar haces un click como en todas las materias. Usá a tu profesor/ayudante para consultas. A no todos les da resultado lo mismo, en la cursada darle mucha bola a los tps me dio resultado a mi, después de eso el parcial me pareció un tp más. Es una materia de bastante práctica y teoría más bien "conceptual".

Ah, quizas agregarComa no fue el mejor nombre, pero la idea era que concatene (se dice así?) una coma entre 2 palabras, mala mía. Te paso lo que puse en mumuki para sumar una respuesta a lo que te compartieron arriba (bastante similar):


agregarComa p1 p2 = p1 ++ "," ++ p2
csv = foldl1 agregarComa


Saludoss
24-05-2018 15:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] fav recibio 1 Gracias por este post
robergto (05-06-2018)
robergto Sin conexión
Militante
La cagué. Sin cursar.
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 87
Agradecimientos dados: 165
Agradecimientos: 8 en 7 posts
Registro en: Aug 2014
Mensaje: #10
RE: Consulta ejercicio Funcional de Mumuki
Aloha gente, perdón que colgué, anduve con otras cosas.
Gracias por su ayuda, una vez más.
Sigo sin entender un joraca, en el parcial clavé un hermoso 2, y francamente no sé qué hacer, ni cómo estudiar. Leí los apuntes de la página de la cátedra (inentendibles para mí, realmente. Me pasa igual que con el mumuki). Hice CASI todos los ejercicios del mumuki, salvo los que tienen este tema que les pregunté, de que no entiendo cómo pasan de las letras del abecedario al quijote, y no sé de dónde sacar más material para estudiar... Googleo, pero lo que encuentro no tiene la más mínima relación con el tp,y el parcial, que es como el tp, salvo que cambian las palabras. La situación es casi la misma, y la comprendo, pero lo que no entiendo es cómo pasar eso a un programa en funcional.
No es falta de interés en aprobar (el paradigma me resulta una porquería, al menos, presentado así). No es falta de lectura tampoco, incluso leía antes del día de la clase las cosas. Nos recomendaron una página, pero también pasa igual, explica cosas del haskell, no del paradigma, y si bien están relacionados, no encuentro el nexo entre los tps y la teoría.
Y, sentarme a tratar de adivinar los tps no me ha servido. No sé qué hacer, porque no entiendo qué aplicar, y estoy siempre en el mismo círculo maniático.

Como sea, gracias de nuevo. Muy buena onda. ¡Salute!
(Este mensaje fue modificado por última vez en: 01-06-2018 17:46 por robergto.)
01-06-2018 17:18
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Phiiliip077 Sin conexión
Secretario de la SAE
1 a la vez
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 549
Agradecimientos dados: 54
Agradecimientos: 373 en 221 posts
Registro en: Oct 2016
Facebook Twitter
Mensaje: #11
RE: Consulta ejercicio Funcional de Mumuki
(01-06-2018 17:18)robergto escribió:  Aloha gente, perdón que colgué, anduve con otras cosas.
Gracias por su ayuda, una vez más.
Sigo sin entender un joraca, en el parcial clavé un hermoso 2, y francamente no sé qué hacer, ni cómo estudiar. Leí los apuntes de la página de la cátedra (inentendibles para mí, realmente. Me pasa igual que con el mumuki). Hice CASI todos los ejercicios del mumuki, salvo los que tienen este tema que les pregunté, de que no entiendo cómo pasan de las letras del abecedario al quijote, y no sé de dónde sacar más material para estudiar... Googleo, pero lo que encuentro no tiene la más mínima relación con el tp,y el parcial, que es como el tp, salvo que cambian las palabras. La situación es casi la misma, y la comprendo, pero lo que no entiendo es cómo pasar eso a un programa en funcional.
No es falta de interés en aprobar (el paradigma me resulta una porquería, al menos, presentado así). No es falta de lectura tampoco, incluso leía antes del día de la clase las cosas. Nos recomendaron una página, pero también pasa igual, explica cosas del haskell, no del paradigma, y si bien están relacionados, no encuentro el nexo entre los tps y la teoría.
Y, sentarme a tratar de adivinar los tps no me ha servido. No sé qué hacer, porque no entiendo qué aplicar, y estoy siempre en el mismo círculo maniático.

Como sea, gracias de nuevo. Muy buena onda. ¡Salute!

Buenas:

Lamento tener que oir esto. Paradigmas es de esas materias que depende bastante de quien te las de (a diferencia de materias mas teóricas).

En mi caso yo fui siguiendo el hilo de las clases y anotando + mumuki + hacer el tp de funcional quede bastante bien parado.

En mi opinión, si queres estudiar el paradigma desde el principio, seguí este recorrido, que fue el que me sirvió a mi:

1) Entende el concepto de una función. Si queres usa el concepto matemático. Una f(x) es una función "f" que espera un valor "x" y devuelve un valor "f(x)". Es lo mismo en Funcional. También podes tener funciones que tomen muchas variables, podría ser un "f(x,y,z,t)".

2) Una vez que tenes eso, empezá con la composición: Si tenes una función "f" que concatena dos string (x,y) y una función "g" que es la función Head (Saca el primero de una lista), podes hacer lo siguiente para que Concatene y saque el primero:

(g.(f x)) y

Una vez entendido esto, tenes gran parte del paradigma bien ya, porque es la base.

3) Empeza con los tipos de una función. Aprende a hacer lo de "funcion :: TipoDeDatoEntrada -> TipoDeDatoSalida" , porque esto te da una gran idea de como van a ser tus funciones y mas de una vez, es común, que pifiemos en pensar la función, en enroscarnos muchísimo y al final darnos cuenta que por poner un "Int" en la declaración, era todo mas rápido.

4) Hace el modelado de información, es decir, de tipos de datos propios distinto de los primitivos de haskell. Los DATA Y los TYPE y todos esos son una de las patas del TP y del examen. Haber entendido esto y que a su vez cada campo de los DATA es una función, ayuda mucho en tu comprensión de la totalidad.

5) Por ultimo, a mi criterio, Recursividad, Expresiones lambda e inferencia de tipos es algo complementario que si bien te da unos items extra en el parcial, no son tan vitales de comprender como los 4 de arriba.

Espero haber sido de ayuda y te deseo suerte, ya que PDEP es una de las materias mas divertidas, ya sea por el contenido como por el primer acercamiento a trabajar con código dentro de la carrera (En simultaneo con Sintaxis)

Saludos
01-06-2018 18:50
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Phiiliip077 recibio 1 Gracias por este post
robergto (05-06-2018)
robergto Sin conexión
Militante
La cagué. Sin cursar.
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 87
Agradecimientos dados: 165
Agradecimientos: 8 en 7 posts
Registro en: Aug 2014
Mensaje: #12
RE: Consulta ejercicio Funcional de Mumuki
Oh Phiiliip077 Tante Grazie!
Creo que algo así era, básicamente, lo que preguntaba =D

Me cuesta, posta. Entender las cosas, más que nada cómo esperan que modelemos algo. Lo de la composición, CREO, lo comprendo bastante bien. Es decir, "veo" claramente que se compone una función con otra, y que esa posibilidad depende de los tipos. Léase, lo que devuelve una (image) es lo que toma (domain) la otra con que se compone. Al caso:
f(x) = x + 1 y g(x) = x > 180 Entonces, "veo" que f toma un número, un int for clarity purposes, y devuelve también un int. G, por su parte, recibe un int y devuelve un Bool, id est, true si le entra un 181 o más grande.

Por otro lado, y en el mismo sentido, lo de los tipos es algo a que presto mucha atención. Si son Ord, Eq o Num, para los más "genéricos". Inclusive CREO comprender cosas como hacer un dato nuestro "ordenable". Verbigracia, tengo un Perro (yeh!), entonces podría modelarlos con su respectivo nombre, edad y kilos de comida que traga por hora, y hacerlos "ordenables" según la cantidad de comida. O, también, Equiparables según el nombre, o la edad. Todo, definiéndolo según sus campos (suponiendo que lo hice con record syntax, para que sea más sencillo)...

Lo mismo para el fold, y lo que dije anteriormente. Veo claramente que toma uno a uno los elementos de una lista, que aplica la función que se le pasa y que uno de los parámetros puede ser el primero de la lista, o la semilla; y, que las sucesivas aplicaciones las hace tomando como uno de los elementos el resultado de la aplicación anterior, y el otro del que sigue en la lista. Me es "sencillo" verlo con matemática, como una sumatoria, por exempio.

Se me complica una poca con recursividad, pero me parece que es más cuestión de práctica que de "entender". O, quizá, y ahí llego al principal escollo que percibo, es "ver" la recursividad en algo... El tema principal es que no logro comprender, básicamente, la forma en que ven las cosas... Cómo se espera que modelemos cuestiones de los tps, cómo tratar las cosas que recibe un data y así.

Al caso, ya se me complicó desde el apunte (el 3 creo que es, el de "Modelado"). Cuando a un Alumno le modela el "criterioDeEstudio" como una función... wall Le what? No logro comprender por qué lo hace así. O, en el mismo apunte, por qué el "sexo" lo modela como Femenino | Masculino. Creedme que lo pregunté, incluso en clase. A los ayudantes... Sigo sin poder entenderlo. Las explicaciones de "pensalo así" me confunden más, y sigo sin poder comprenderlo. Eso, me caga el resto de la vida paradigmática. Los tps dicen cosas que veo incomprensibles de llevar a un programa (siquiera estructurado, je. Quizá el problema básico venga de ahí). Y se me va todo al joraca. Si uso un type, o un data, se me empieza a confundir (son cosas distintas, lo veo claramente, pero para aplicarlo se me va a la mierda). No comprendo si los campos de un data tendrían que ser una lista de cosas, o si van por separado... Cómo modelar las cosas para que sean "del mismo tipo y poder tenerlas en una lista". Por exemplis, uno de la bebida de messi =P Cuando me dijeron que las bebidas eran powerade | gatorade | agua dije "oh my", y ahí quedé... Peor, que después definía cada una como "powerade = 30 gatorade = 70 ... " y así, porque en el enunciado hablaba de la energía de cada una...

Bueno, tanto texto. Te agradezco mucho la buena onda, y el aporte, realmente me ayuda mucho. Seguiré dándole pues, a ver si puedo clavar un 10, pero no en binario esta vez =D No tanto por la nota, que la promoción sale con fritas, sino porque realmente quiero entenderlo.

thumbup3=D
05-06-2018 10:19
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: