2009-07-27 8 views
12

En primer lugar, el título torpe hace referencia directamente a este documento:Aplicación práctica de "Plátanos, lentes, sobres y alambre de púas"?

http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf

entiendo el valor teórico de esto, ya que los modelos de la mayoría, si no todos, la programación de la semántica.

¿Qué problemas se resuelven más eficiente y prácticamente con un paradigma de programación basado en esto? ¿Qué problemas no son?

Imagina todos los programas escritos donde el 80% de toda la lógica involucra a estos operadores. Me pregunto si un lenguaje que forzó a los operadores del usuario podría aprovechar su estructura ...

+2

No sé qué es lo que debo hacer con un archivo PostScript. No tenga una impresora PostScript a mano aquí. –

+2

puede suministrar una versión pdf o html de este documento, ya que no es fácil leer postscript en muchas computadoras. –

+3

¿Su lector de PDF no puede leer postscript? Es hora de actualizar a una computadora desde algún momento después de 1950, creo. – jrockway

Respuesta

15

Este artículo forma parte de una larga serie de exploraciones teóricas relacionadas. El área de investigación es lo que los programadores funcionales llaman programación genérica (que de manera confusa es diferente de lo que los programadores de C++ llaman programación genérica). La idea es que escriba sus funciones de tal manera que cuando defina un nuevo tipo de datos, automáticamente obtenga un nuevo código para ir con él. Un problema clásico que a la gente le gustaría resolver de esta manera es escribir una imagen de los datos en el disco y luego volver a leer los datos isomorfos de la imagen del disco.

Si quieres tener una idea de las aplicaciones prácticas de estas ideas, recomiendo excelente documento de Ralf Hinze Generics for the Masses, que muestra cómo se puede probar todas estas ideas extravagantes en el viejo y simple Haskell. Por ejemplo, he utilizado estas técnicas para implementar la sustitución de evitar la captura de lenguajes intermedios muy complicados dentro de los compiladores.

Ralf ha escrito varios artículos buenos sobre programación genérica, al igual que Jeremy Gibbons. Sus cosas no están tan lejos como los plátanos, lentes, etc.

+0

¡Genial! Gracias por el enlace en papel. Sin embargo, los genéricos no fueron lo que obtuve de 'Bananas'. Tal vez tendré que volver a re-re-re -... volver a leerlo y buscar eso. (Aunque, tal vez eso es enterrado en la parte teórica categoría que no capto bien.) –

+1

teoría de categorías hace que me dolía la cabeza ... –

+0

Parece que el enlace que tienes a los genéricos para las masas está muerto. Aquí hay otro: http://www.cs.ox.ac.uk/ralf.hinze/publications/Masses.pdf –

2

Lo que esto significa es que las soluciones que se pueden modelar en un paradigma también se pueden modelar en la otra, y que una puede ser convertido programáticamente en el otro.

Ahora, ciertos problemas se resuelven más fácilmente en un paradigma que en el otro. Además, es más fácil probar propiedades en un paradigma que en el otro. Entonces, si puede mostrar esa equivalencia, abre la puerta para resolver ciertos problemas de la manera más fácil y luego convierte la solución en el paradigma deseado.

Esto es similar a la cosa de las mónadas. El gran problema con las mónadas no es cómo escribir una. El gran problema con ellos es que hay toneladas de teoremas sobre mónadas que se pueden aplicar una vez que reduzcas tu problema a una mónada. El mismo principio se aplica aquí.

+0

Derecha. Esto se aplica a todos los paradigmas. (Quiero decir, si preguntaba por la programación orientada a objetos, esto sería cierto). ¿Pero qué puedo * sacar * de esto? –

+1

Como programador o como investigador? Como programador, nada, realmente. Como investigador ... bueno, no estoy calificado para responder eso. :-) –

Cuestiones relacionadas