¿Es posible definir nuevos dúmperes articulados en GHCi
-
27-09-2019 - |
Pregunta
Al comentar sobre las nuevas características en ghci deseé que ghci tenía la capacidad de declaración de tipo de declarar y declarar nuevos tipos de ADT, alguien informó que era de hecho posible, y después de buscar que se encuentran esta página que me lo dijo podría hacer
let numUniques' :: (Eq a) => [a] -> Int; numUniques' = length . nub
Al parecer, ese mismo tipo de sintaxis trabaja para la coincidencia de patrones (por ejemplo, dejar que un 1 = true;. A 2 = Falso).
La creación de los ADT haría casi perfecto? ¿Alguien sabe si es posible en la actualidad? ¿Debo hacer un archivo ADT cero y volver a cargarlo?
P.S. ¿Alguien sabe si hay planes de hacerlo? ¿Hay peticiones para GHC (i)?
También sé que es de código abierto, pero no estoy actualmente lo suficientemente inteligente como para introducirse en GHC (i).
Solución
No, pero se podría definir nuevos tipos de HBI (un intérprete antes). No hay discusión acerca de traer esto de nuevo, a través de una biblioteca en ghci hackage.
Otros consejos
Tenga en cuenta que también se puede hacer de varias líneas de código explícito en ghci con :{
y :}
:
http://www.haskell.org/ghc /docs/6.12.2/html/users_guide/interactive-evaluation.html
Esto ha sido añadido como de GHC versión 7.4.1, que fue lanzado en febrero :
jcp@butler:~$ ghci
GHCi, version 7.6.1: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> data Test = Foo | Bar | Baz deriving (Read, Show)
Prelude> Foo
Foo
Prelude> read "Bar" :: Test
Bar
Prelude> :t Baz
Baz :: Test
No, no se puede definir nuevos tipos de ghci.
Así que sí, tendrá que poner esas definiciones en un archivo.