Haskell/Usando o GHCi
Este módulo encontra-se em processo de tradução. A sua ajuda é bem vinda. |
GHCi auxilia de várias formas na produção de um trabalho mais eficiente. Nessa sessão, apresentamos uma breve discussão sobre boas práticas usando GHCi.
Autocompletar usando Tab
[editar | editar código-fonte]Como em outros programas de terminal, você pode iniciar digitando algum texto no GHCi e clicando na tecla tab para ver todas as possibilidades que iniciam com texto que você digitou anteriormente. Quando há somente uma possibilidade, a tecla tab irá autocompletar o texto. Por exemplo, fol
<Tab> irá acrescentar a letra "d" (desde que não exista outros itens que iniciem com "fol"). Pressionando a tecla Tab novamente, será listado as quatro funções inclusas no Prelude: foldl
, foldl1
, foldr
e foldr1
. Mais opções poderão ser listadas, além dessas, caso você tenha importado mais módulos.
A tecla Tab também funciona quando você está carregando arquivos no GHCi. Por exemplo, depois de digitar :l fi
<Tab>, o GHCi irá mostrar todos os arquivos que iniciam com "fi" presentes no seu diretório atual (aquele que você estava quando iniciou o GHCi).
A mesma coisa também se aplica a importação de módulos, depois de digitar :m +Da
<Tab> ou import Da
<Tab>, você será apresentado a todos os módulos que iniciam com "Da" presentes nos pacotes instalados.
": comandos"
[editar | editar código-fonte]Na linha de comando do GHCi, comandos para o interpretador iniciam com o caractere ":".
:help
ou:h
-- imprime uma lista com todos os possíveis comandos.:load
ou:l
-- carrega um arquivo no GHCi (você deve digitar o nome do arquivo após o comando:l
).:reload
ou:r
-- lê novamente um arquivo que já foi carregado anteriormente (útil quando o arquivo foi alterado).:type
ou:t
-- imprime o tipo da expressão passada como parâmetro:module
ou:m
-- carrega um módulo. você também pode retirar do GHCi um módulo adicionando o símbolo-
antes do nome do módulo.
Novamente, você pode visualizar todos os comandos possíveis digitando, :Tab.
Cronometragem de funções no GHCi
[editar | editar código-fonte]GHCi tem uma maneira básica de medir quanto tempo uma função gasta para ser executada.
- digite
:set +s
na linha de comando do GHCi. Agora, execute a função e o tempo gasto por ela será mostrado após seu output.
Multi-line Input
[editar | editar código-fonte]Se você quer definir uma função com múltiplas linhas, os caso queira digitar um bloco do no GHCi, há uma maneira simples:
- inicie uma nova linha com
:{
- digite seu código, pressione enter quando precisar de uma nova linha.
- digite
:}
para definir o final das suas múltiplas linhas.
Por exemplo:
*Main> :{ *Main| let qualSeuNome = do *Main| putStrLn "Qual o seu nome?" *Main| name <- getLine *Main| putStrLn $ "Oi" ++ name ++ "Como está?" *Main| :} *Main>
O mesmo resultado pode ser obtido usando :set +m
, isso permitirá o uso de múltiplas linhas. Nesse caso, uma linha em branco definirá o fim do bloco.
Além disso, comandos podem ser separados em uma única linhas usando ponto e vírgula, veja:
*Main> let qualSeuNome' = do ; putStrLn "Qual o seu nome?" ; name <- getLine ; putStrLn $ "Oi " ++ name ++ " Como está?"