
Já que tem pouca gente ativa com Haskell no Brasil eu me proponho a ajudar
com a tradução por agora.
To começando a aprender FP, dei uma olhada em Erlang, Elixir e OCaml. Mas
pelo visto minha dedicação vai ser pro Haskell a partir de agora, tentarei
ficar mais ativo no Slack pra trocar uma idéia e aprender um pouco mais :D
Em seg, 30 de nov de 2015 às 19:38, Pedro Yamada
Olá!
Tenho algumas coisas que gostaria de dividir.
Primeiro, não tem ninguém no Slack e pouquíssimas pessoas no IRC, o que me deixa triste. Entrem lá pra trocar ideia de programação funcional.
- - -
O site haskellbr.com foi atualizado com a descrição do próximo meetup. Gostaria de ter um blog configurado e começar a produzir conteúdo. Infelizmente isso não foi possível nesse fim-de-semana.
- - -
Criei um fork do site haskell.org em https://github.com/haskellbr/hl e comecei o trabalho de internacionalização com i18n. Essa é uma issue aberta no repositório global (https://github.com/haskell-infra/hl/issues/4), se adicionarmos uma tradução do site para pt-br estaremos preparando o território para outras comunidades em outros países para fazer o mesmo. Além disso, o site é escrito usando Yesod e acho que o suporte a i18n do framework é muito particular ao Haskell e muito bom, então é tecnicamente divertido.
- - -
MissingH é uma ótima biblioteca cheia de funções úteis que não estão disponíveis no `Prelude`. Funções como `split :: String -> String -> [String]` ou `join :: [a] -> [[a]] -> [a]`, acho que de certa forma, poderia se pensar nela como um `lodash`/`underscore` do Haskell. Na minha opinião, a biblioteca tem o problema de ser muito grande. Nem sempre vale a pena a incluir em projetos, por causa do aumento no tempo de compilação e tamanho do binário que seu uso causa.
Resolvi fazer um fork com o intuito de quebrar o pacote e mitigar esse problema ao decidir. Esse projeto pode ser interessante para pessoas querendo aprender Haskell fazendo coisas úteis. A ideia é simples: separar o pacote `missingh` em vários pacotes menores.
Decidi seguir uma implementação um pouco mais interessante, escrever um pacote `package-splitter` que, dado um pacote ([x] == feito): - [x] Lê seu manifest `.cabal` - [x] Extrai os módulos existentes no pacote - [ ] Extrai todas as dependências de cada um desses módulos - [ ] Gera pacotes menores baseados nessa informação (essa é a parte mais difícil)
Ajuda que fiz algo muito parecido aos primeiros 3 passos com a ajuda do André Barnabá (asakeron) [1] em `stack-run-auto` [2] muito recentemente.
Então só o quarto passo deve dar um pouco mais de trabalho.
Acho que é divertido, não sei se já viram aquele thread de e-mails da lista de Erlang onde o Joe Armstrong questiona a existência de módulos em uma linguagem de programação e discute um gerenciador de pacotes baseado em funções.
Ia ser muito legal ter isso e acho que a forma como Haskell se organiza faz a criação de ferramentas ao redor de análise estática muito mais fácil.
Espero ter uma versão inicial de um programa que separe pacotes do cabal automaticamente logo. Comentem o que acham dessa ideia.
- - -
Sobre o `stack-run-auto`, acho que vale dizer que ele foi completamente portado para Haskell e vejo algum potencial para melhorar o que existe nele. A próxima versão do `stack` deve ter fall-through do executável no estilo do `git` [3], o que abre a porta para escrever plugins como esse e extender o toolset da linguagem.
P.S. isso estava no HackerNews e é sensacional (datomic no nubank) https://youtu.be/7lm3K8zVOdY
Yamada
[1] - https://github.com/asakeron [2] - https://github.com/yamadapc/stack-run-auto [3] - https://github.com/commercialhaskell/stack/pull/1434 _______________________________________________ haskell-br mailing list haskell-br@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-br