18/10/2019, 08:27:37 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Puedes practicar LATEX con el cómodo editor de Latex online
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Programación funcional - Programación orientada a objetos  (Leído 3746 veces)
0 Usuarios y 1 Visitante están viendo este tema.
zeo
Semi pleno
***

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 66



Ver Perfil
« : 24/09/2008, 11:51:48 am »

Hola

¿Cuál es la diferencia entre "programación funcional" y "programación orientada a objetos"?

Entiendo algo de c++ (prog. orientada a objetos), y en unos días empezaré a estudiar Haskell (prog. funcional) y no sé practicamente de que va. Imagino que me darán una introducción al tema, pero a mi me gustaría comparar ambos estilos. A ver si alguien sabría orientarme.

Saludos.
En línea
Luis Fuentes
el_manco
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 45.062


Ver Perfil
« Respuesta #1 : 24/09/2008, 01:09:57 pm »

Hola

 No había oído hablar de la programación funcional. Pero estas notas quizá puedan darte una idea:

 http://people.cs.uu.nl/jeroen/courses/fp-sp.pdf

Saludos.
En línea
djgera
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 122



Ver Perfil WWW
« Respuesta #2 : 24/09/2008, 02:49:12 pm »

Hola, la diferencia es bastante grande.

Te hago un pequeño, muy superficial, resumen y comparación:

En ambas, se trata de encarar un problema desde dos puntos de vista completamente diferentes: mientras que en la programación orientada a objetos es imperativa, la programación funcional es declarativa.

En general, en la programación imperativa está presente el concepto estados: tu programa a medida que se ejecuta va cambiando su estado. En el caso concreto de los objetos, lo que cambia es el estado de los mismos.

Una máquina de Turing (una máquina abstracta), es una máquina de estados y se relaciona directamente con la forma imperativa de programación.

La programación funcional nace del cálculo lambda de Alonso Church, y se basa directamente en el concepto de funciones matemáticas. Las funciones no producen efectos secundarios, esto quiere decir, que no modifican cosas externas, y siempre a valores iguales de entrada se obtiene lo mismo de salida. Se utiliza muchísimo el concepto de recursividad, no existen los ciclos iterativos por ejemplo, todo se hace de forma recursiva, no hay asignaciones destructivas.

Digamos que en la programación imperativa, vos pones atención en que instrucciones ejecutar para resolver un problema, mientras que en la declarativa, pones atención, en restricciones y reglas, que funcionan de forma independiente para que luego mediante un mecanismo interno interactúen entre ellas.

Espero que te de una leve idea.

¡Salut!
En línea
zeo
Semi pleno
***

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 66



Ver Perfil
« Respuesta #3 : 24/09/2008, 03:37:11 pm »

Hola

Gracias el_manco por las notas, les iré echando un vistazo; gracias también a djgera por su comentario, creo que voy haciéndome una idea de lo que debo ir "olvidando" de c++. Puesto que sólo había tocado este lenguaje, ya sospechaba que la programación funcional no iba a tener nada que ver. En cuanto a lo que comentas sobre programación funcional, pues me asaltan muchas dudas, ya que yo tenía ya mi visión de la programación bastante reducida, pero primero toca estudiar, y luego preguntar  :guiño:.

Saludos.
En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!