2012-04-15 17 views
6

Soy nuevo en Haskell y hasta ahora lo estoy disfrutando bastante. Una cosa que me sorprende es que parece bastante grande, con muchos constructos sintácticos y bibliotecas que definen funciones para casi todo. Por ejemplo, Data.Map define casi 100 funciones. Data.Set también define muchas funciones, al igual que Data.List, que también proporciona muchas de las mismas funciones que Data.Set.¿Por qué Haskell es tan grande?

Tengo la opinión de mi principiante sobre por qué esto podría ser (proporcionar funciones para todos los patrones comunes, reducir el ruido), pero estoy interesado en escuchar opiniones veteranas sobre el tema.

+3

Votado para cerrar: esta es una gran pregunta, pero está muy centrada en la opinión y no es una buena opción para SO. Recomiendo un autoenvío en [/r/haskell](http://reddit.com/r/haskell) –

+1

Lo suficientemente justo, [aquí está] (http://www.reddit.com/r/haskell/ comments/sb80y/why_is_haskell_so_large /). – Scott

Respuesta

3

Yo diría que el tamaño del lenguaje Haskell está en algún lugar en el medio (más grande que Lisp, más pequeño que C++). Aunque dado que todo el azúcar sintáctico tiene traducciones bien definidas hasta Haskell Core (que tiene alrededor de 7 elementos), es un poco difícil de distinguir entre la biblioteca y el lenguaje.

Es cierto que las bibliotecas contienen muchas funciones pequeñas, básicamente porque los programadores de Haskell han encontrado patrones que siguen apareciendo y luego los ponen en código. Como aprendiz, a menudo tenía la sensación de que "debería haber una función para hacer eso" y luego descubría que existía. Los aprende de la misma manera en que fueron escritos: escriba usted mismo la función y luego, unos días más tarde, en la documentación de la biblioteca.

+1

"larger than Lisp" ¿Quiere decir Scheme? Common Lisp es conocido por ser enorme, y Scheme fue creado en realidad como reacción. –

+0

@PascalCuoq: incluso Common Lisp es bastante pequeño en comparación con muchos idiomas modernos. - C++ en realidad no es tan enorme. Simplemente tiene muchas formas diferentes de hacer las cosas. – leftaroundabout

+0

@PascalCuoq ¿Estás diciendo que Scheme fue creado en previsión de una próxima gran Common Lisp :)? – Peteris

Cuestiones relacionadas