tutorial - haskell simbolos
¿Qué temas de Haskell deben abordarse en un estilo Real-World-Haskell? (6)
¡He querido hacer esta misma pregunta exactamente! Compraría RWH vol2 si contenía los elementos de la lista hasta el momento. También me gustaría ejemplos del mundo real para (sin ningún orden en particular)
- GADTs
- escriba familias
- técnicas para listas heterogéneas
- Typeclassopedia estilo Typeclassopedia de clases de tipos estándar
- una explicación más completa del árbol de tecnología tipo de Edward Yang
- registros / lentes
Ha pasado bastante tiempo ahora que salió RWH ( casi 3 años ). Estaba ansioso por obtener mi copia después de seguir la escritura incremental del libro en línea (que es, creo, una de las mejores formas de escribir un libro). Qué lectura tan gratificante en medio de todos los trabajos académicos de un estudiante de haskell usualmente se encuentra!
Fue un compañero fuerte en algunos viajes y me refiero a él regularmente. Aún así, mi copia comenzó a verse bastante maltratada y, aunque la mayoría del contenido sigue siendo válido, ha habido una abundancia de nuevos temas en el mundo de haskell que valdría la pena cubrir de una manera similar.
Teniendo en cuenta el impacto que RWH tuvo (y todavía tiene), espero sinceramente que haya una secuela algún día :) Algunos de los temas de una secuela que inmediatamente se me ocurrirían:
- Iteratos
- más sobre la programación concurrente en Haskell
- méritos y peligros de la evaluación perezosa
- posiblemente cubriendo algunas bibliotecas comunes que se ocupan de esto
- en particular, perezoso io
- nuevas características ghc (por ejemplo, el nuevo Administrador de E / S, generador de código LLVM)
- Memoization
- ..
¿Cuáles son los temas que la comunidad de Haskell necesita una explicación al estilo de RWH?
este es un resumen de las sugerencias hasta el momento:
Conceptos
- Iteratos / IO perezoso
- Flechas
- Gerente de eventos ghc
Técnicas
- genéricos (uniplate, syb)
- metaprogramación (Plantilla Haskell)
- estructuras de datos (uso de estructuras de datos funcionales, diseño de estructuras de datos)
- EDSL (diseño de EDSL)
- memorización
- diseñando con mónadas
- mejores prácticas para la programación imperativa
Herramientas
- ThreadScope
- Herramientas avanzadas de FFI (c2hs, utilizando Haskell desde C)
- cábala
- eglefino
- hoogle
- Sintonizando el tiempo de ejecución, esp. Banderas del GC
- Djinn
Bibliotecas
- matrices y programación de array (vector, repa, hmatrix)
- numéricos (números aleatorios)
- programación paralela (La mónada de Par)
- Unicode y configuraciones regionales (texto, texto-icu)
- análisis (attoparsec, tagoup)
- creación de redes (complemento, yesod)
- cosas web (plantillas)
- persistencia (especialmente enlaces de almacenamiento no-sql)
- gráficos (cairo, sdl, opengl)
- xml (haxml)
- crypto
- procesadores y sistemas de cosas
Aquí está mi opinión, sesgada hacia el ecosistema.
Bibliotecas
- matrices y programación de matriz:
vector
-
repa
-
hmatrix
- numéricos
- números al azar
- programación paralela
- La mónada de
Par
- La mónada de
- Unicode y locales
-
text
ytext-icu
-
- análisis
-
attoparsec
-
tagsoup
-
- redes
-
snap
y / oyesod
-
- cosas web
- plantilla
- persistencia
- bases de datos más allá de
hdbc
- enlaces de almacenamiento no-sql
- bases de datos más allá de
- gráficos
-
cairo
-
sdl
-
opengl
-
- xml
-
haxml
-
- crypto
- procesadores y sistemas de cosas
Técnicas
- genéricos
-
uniplate
-
syb
-
- metaprogramación
- Plantilla Haskell
- estructuras de datos
- diseñando estructuras de datos
- EDSLs
- diseñando EDSLs
- memorización
- diseñando con mónadas
Herramientas
-
ThreadScope
- Herramientas avanzadas de FFI
-
c2hs
- usando Haskell desde C
-
- Sintonizando el tiempo de ejecución, esp. Banderas del GC
Estos son menos "real worldy", pero me gustaría ver presentaciones útiles (y posibles aplicaciones de Real World?) A
- Djinn
- Plantilla Haskell
- Flechas
Me encantaría ver un "enfoque RWH" para la programación reactiva funcional, una versión de RWH de this , tal vez cubriendo Yampa o algo similar. Pero tal vez este tema no sea lo suficientemente "realista" (todavía) ...
Me encantaría ver:
- Cabal & Hoogle & Haddock (mejores prácticas para el
code
diario -build
-test
-deploy
flujo de trabajo) - Las estructuras de datos disponibles y sus características de uso, rendimiento y espacio (mundo real)
- Visualización de datos
- Mejores prácticas para la programación imperativa
- Yesod y Snap
- Más sobre la conectividad de la base de datos (SQL y NoSQL)
- Más sobre programación de red
Sin embargo, el "Más sobre ..." podría estar mejor ubicado en un "Libro de cocina Haskell".
Recientemente, soy nuevo en Haskell y solo he leído algunos capítulos de este libro y Programación en Haskell, de Graham Hutton.
Sin embargo, tendría que estar de acuerdo con en el sentido de que me encantaría ver un "libro de cocina Haskell", así como una nueva versión más actualizada de RWH (¡Como todavía no he terminado, esto no es tan importante personalmente para mí!).
Consejos y códigos de muestra para hacer con fechas, generación de números aleatorios y los códigos más eficientes para realizar algoritmos clave (clasificación, etc.) serían una gran adición a cualquier libro.