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]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]Na linha de comando do GHCi, comandos para o interpretador iniciam com o caractere ":".
:helpou:h-- imprime uma lista com todos os possíveis comandos.:loadou:l-- carrega um arquivo no GHCi (você deve digitar o nome do arquivo após o comando:l).:reloadou:r-- lê novamente um arquivo que já foi carregado anteriormente (útil quando o arquivo foi alterado).:typeou:t-- imprime o tipo da expressão passada como parâmetro:moduleou: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]GHCi tem uma maneira básica de medir quanto tempo uma função gasta para ser executada.
- digite
:set +sna 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]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á?"