Ist es möglich, neuen ADTs in GHCi zu definieren
-
27-09-2019 - |
Frage
Während auf neue Funktionen in GHCI kommentieren wollte ich, dass GHCI die Fähigkeit, declare Typdeklaration hatte und neue ADT-Typen erklärt, jemand darüber informiert, dass es tatsächlich möglich war, und nach der Suche gefunden: Diese Seite , die mir sagte, ich tun könnte
let numUniques' :: (Eq a) => [a] -> Int; numUniques' = length . nub
Offenbar dass selbe Syntax arbeitet für den Mustervergleich (ex lassen einen 1 = True; a. 2 = False).
Erstellen von ADTs wäre es fast perfekt machen? Weiß jemand, ob es noch möglich ist? Soll ich einfach eine ADT Scratch-Datei machen und es neu zu laden?
P. S. Weiß jemand, ob es irgendwelche Pläne, dies zu tun? Gibt es Feature-Anfragen für ghc (i)?
Auch weiß ich, seine Open-Source, aber ich bin derzeit nicht intelligent genug, um hacken auf ghc (i).
Lösung
Nein, aber Sie könnten neue Arten in HBI definieren (ein früherer Dolmetscher). Es Diskussion geht darum, bringen diese zurück, über eine GHCI Bibliothek auf Hackage.
Andere Tipps
Beachten Sie, dass Sie auch explizit mehrzeiligen Code in GHCI mit :{
und :}
tun können:
http://www.haskell.org/ghc /docs/6.12.2/html/users_guide/interactive-evaluation.html
Dies wurde als die GHC Version 7.4.1 aufgenommen, die veröffentlicht wurde zurück im Februar :
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
Nein, Sie können nicht neue Typen in GHCI definieren.
Also ja, werden Sie diese Definitionen in einer Datei speichern, müssen.