Pergunta

Ao comentar sobre novos recursos no GHCI, desejei que o GHCI tivesse a capacidade de declarar declaração de tipo e declarar novos tipos de ADT, alguém informou que era realmente possível e, depois de pesquisar, encontreiesta página que me disse que eu poderia fazer

let numUniques' :: (Eq a) => [a] -> Int; numUniques' = length . nub

Aparentemente, esse mesmo tipo de sintaxe funciona para a correspondência de padrões (Ex. Deixe a 1 = true; a 2 = false).

Criar Adts o tornaria quase perfeito? Alguém sabe se é atualmente possível? Devo apenas fazer um arquivo ADT Scratch e recarregá -lo?

PS Alguém sabe se há planos de fazê -lo? Existem solicitações de recursos para GHC (I)?

Também conheço seu código aberto, mas atualmente não sou inteligente o suficiente para invadir o GHC (I).

Foi útil?

Solução

Não, mas você pode definir novos tipos no HBI (um intérprete anterior). Há uma discussão sobre trazer isso de volta, por meio de uma biblioteca GHCI em hackage.

Outras dicas

Observe que você também pode fazer código multilina explícito em GHCI com :{ e :}: http://www.haskell.org/ghc/docs/6.12.2/html/users_guide/interactive-evaluation.html

Isso foi adicionado na versão 7.4.1 do GHC, que foi lançado Em fevereiro:

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

Não, você não pode definir novos tipos no GHCI.

Então, sim, você precisará colocar essas definições em um arquivo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top