264 votos

¿Qué es realmente útil para Haskell?

Realmente espero que nadie considere esta cuestión como se puede cerrar porque es un bastante sencillo uno.

Busqué en Google esta pregunta, pero no mucha información se encontró que era conciso e informativo para mí.

Por ejemplo, si empiezo a aprender Haskell, ¿qué puedo encontrarme a mí mismo utilizando para. Algunos de los usos comunes de este lenguaje que oigo es funcional.?

183voto

Xinus Puntos 7693

¿Cuáles son algunos de los usos más comunes para este el lenguaje?

Desarrollo rápido de aplicaciones.

Si quieres saber por qué Haskell? Entonces usted necesita considerar las ventajas de un lenguaje de programación funcional (tomado de http://c2.com/cgi/wiki?AdvantagesOfFunctionalProgramming):

  • Programas funcionales tienden a ser mucho más concisa que la de sus ImperativeLanguage contrapartes. A menudo esto conduce a una mayor la productividad de un programador

  • FP alienta la generación rápida de prototipos. Como tal, creo que es el mejor software de diseño de paradigma para ExtremeProgrammers... ¿pero qué sé yo.

  • FP es modular en la dimensión de funcionalidad, donde ObjectOrientedProgramming es modular en la dimensión de los diferentes componentes.

  • La capacidad de tener su pastel y comérselo. Imagina que tienes un complejo O sistema de procesamiento de mensajes de cada componente podría hacer el estado cambios en función del mensaje y, a continuación, enviar el mensaje a algunos los objetos de los enlaces. ¿No sería demasiado fría para ser capaz de fácilmente deshacer todos los cambios si algún objeto profunda en la llamada jerarquía decidió el mensaje es erróneo? ¿Qué te parece tener una historia de los diferentes estados?

  • Muchas de las tareas de limpieza realizadas por usted: la deconstrucción de las estructuras de datos (PatternMatching), el almacenamiento de ligaduras de variables (LexicalScope con cierres), tipado fuerte (TypeInference), GarbageCollection, almacenamiento, la asignación, ya sea para uso en caja (puntero-a-valor) o sin caja (valor directamente) la representación...

  • Seguro multihilo! Inmutable estructuras de datos no son objeto de condiciones de carrera, y por consiguiente no tienen que ser protegidos por bloqueos. Si usted está siempre en la asignación de nuevos objetos, en lugar de destructivamente la manipulación de las existentes, el bloqueo puede estar oculto en la asignación y GarbageCollection sistema.

Aparte de esto Haskell tiene sus propias ventajas, tales como

  • Claro, intuitivo sintaxis inspirada en la notación matemática.
  • Lista de entendimiento para crear una lista basada en las listas existentes.
  • Las expresiones Lambda: crear funciones, sin darles nombres explícitos. Así que es más fácil de manejar grandes volúmenes de fórmulas.
  • Haskell es completamente referentially transparente. Cualquier código que utiliza e/S deben estar marcados como tales. De esta manera, se alienta a separar el código con efectos secundarios (p. ej. poner texto en la pantalla) de código sin (cálculos).
  • Evaluación diferida es una muy buena característica:
    • Incluso si algo se suele producir un error, que seguirá funcionando como siempre y cuando no se utilice el resultado. Por ejemplo, usted podría poner 1 / 0 como el primer elemento de una lista y va a funcionar si sólo se usa el segundo elemento.
    • Es más fácil escribir programas de búsqueda como este sudoku solver porque no carga en cada combinación a la vez-que sólo les genera a medida que avanza. Usted puede hacer esto en otros idiomas, pero sólo Haskell hace esto por defecto.

Usted puede comprobar fuera de los siguientes enlaces:

113voto

wheaties Puntos 20917

Creo que la gente en este post están perdiendo el punto más importante para cualquier persona que nunca ha utilizado un lenguaje de programación funcional: la expansión de su mente. Si usted es nuevo en la programación funcional Haskell luego te hará pensar en formas que nunca ha pensado antes. Como resultado de su programación en otras áreas y otras lenguas mejorará. Cuánto cuesta? Es difícil de cuantificar.

49voto

Don Stewart Puntos 94361

Hay una buena respuesta, por lo que el propósito general de la lengua como Haskell es bueno para: la escritura de programas en general.

Para qué se utiliza en la práctica, he de tres enfoques para establecer que:

Indica que es bueno para los gráficos, la creación de redes, sistemas de programación, estructuras de datos, bases de datos, desarrollo, procesamiento de texto ...

Y por último, mi opinión sobre lo que es realmente fuerte:

Espero que le da un sentido de cómo la amplia tu pregunta, si es que va a ser respondida con la especificidad.

17voto

unutbu Puntos 222216

Un ejemplo de Haskell en la acción se xmonad , un "gestor de ventanas featureful en menos de 1.200 líneas de código".

11voto

Robert Groves Puntos 3867

A partir de la de Haskell Wiki:

Haskell tiene una gama diversa de uso comercialmente, desde la industria aeroespacial y de defensa, a las finanzas, a la web de startups, diseño de hardware de las empresas y de la cortadora de césped fabricantes. Esta página recoge los recursos en el uso industrial de Haskell.

De acuerdo a Wikipedia, el Haskell lenguaje fue creado a partir de la necesidad de consolidar los existentes en los lenguajes funcionales en común que podrían ser utilizados para la investigación futura en el funcional diseño del lenguaje.

Es evidente, basado en la información disponible que se ha superado el propósito original y se utiliza para mucho más que la investigación. Ahora es considerado un lenguaje de programación funcional.

Si todavía estás preguntando, "¿por Qué debo usar?", luego de leer el ¿por Qué usarlo? la sección de la Haskell Wiki Introducción.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X