clojure-brasil

Telegram -> https://t.me/clojurebrasil | Youtube -> https://goo.gl/k7Jhcy | Facebook -> https://goo.gl/R7EjmE | Github -> https://github.com/clj-br
naomijub 2017-12-09T01:40:00.000059Z

Hoje meu time teve hackday, e nos divertimos passando um codigo legadão (2002) para Clojure. de 54 classes para 3 namespaces com 5 funções cada. Agora falta por isso em produção pra ontem

gilmar 2017-12-09T10:38:12.000064Z

Que show @jnaomi, onde trabalho sei que não consigo fazer nada em Clojure, até por que a galera não curte JVM, gostam de Python, mas vou tentar fazer todos os meus novos projetos com Clojure

😱 1
matheusashton 2017-12-09T16:20:08.000059Z

Olá pessoal, tudo bom? meu nome é Matheus, eu trabalho há bastante tempo com desenvolvimento, mas nos últimos anos que comecei a estudar funcional e escolhi clojure como minha linguagem para praticar os estudos, (fiz bastante coisa com JS funcional tb). Atualmente estou desenvolvendo um projetinho pessoal, e me deparei com algumas questões conceituais. Quando estava estudando funcional em JS, eu usava bastante um projeto de implementações de monads para tornar o meu código mais fácil de compor e isolar os side effects. No meu projeto atual em clojure eu leio um arquivo texto, faço o parsing desse arquivo e salvo as informações em um banco, me deparei com 2 questões: 1) não sei como isolar os side effects de uma forma clojure-like, procurei sobre uso de monads em clojure, mas não achei muito material e nada que fosse esclarecedor. 2) Ao parsear o arquivo, eu posso encontrar alguns problemas de conversão (para data, por exemplo). Qual seria a melhor forma de tratar esses erros? Em JS eu recorreria novamente às monads, não sei bem como tratar isso em clojure.

matheusashton 2017-12-09T16:21:33.000006Z

desculpe o textão 😅

matheusashton 2017-12-09T16:22:30.000073Z

se precisarem do código, ele está aqui: https://github.com/ashton/investtrack/blob/master/src/investtrack/command.clj

matheusashton 2017-12-09T16:22:51.000108Z

aceito qualquer tipo de feedback e desde já agradeço a ajuda 😄

fabrao 2017-12-09T18:37:39.000097Z

@matheusashton Tudo bem? Normalmente para fazer parser de arquivos eu uso o Instaparse, você define sua gramática e ele te entrega a estrutura pronta. Para processar os dados eu uso defmulti que deixa o código muito limpo no processamento dos tags. Em relação aos erros, o Insta já processa a gramática e valida diretamente indicando onde está o erro pela regra que você definiu. Então, essa é minha dica.

👏 1
matheusashton 2017-12-09T20:51:23.000020Z

opa valeu 😉 eu tinha visto esse cats, achei bem bacana, mas é comum o uso dessas monads em clojure?

matheusashton 2017-12-09T20:51:34.000019Z

eu vi uns artigos criticando por clojure não ser tipado etc

fabrao 2017-12-09T21:30:57.000086Z

@matheusashton Você pode usar a notação ^ para otimizar a compilação para rodar mais rápido, ou usar http://typedclojure.org/, mas não sei se é muito usado, eu não uso.

fabrao 2017-12-09T21:31:38.000099Z

para validação de dados usa-se o https://clojure.org/guides/spec

matheusashton 2017-12-09T22:50:01.000157Z

valeu! vou dar um aolhada