Olá, comecei a estudar clojure com o intuito de aprofundar meu conhecimento no paradigma funcional e decidi mapear aqui minha jornada nessa nova linguagem de programação.
Vou adicionar nesse repositorio todas as minhas anotações, livros e artigos relacionados a essa nova quest de aprender clojure, o conteudo será disponibilizado em português e inglês.
Caso você não tenha conhecimento no paradigma funcional, acredito que o primeiro passo seja se ambientar e entender um pouco sobre imutabilidade, high-order-function, funções puras e etc. Dessa forma acredito que será mais facil entender algumas decisões que existem dentro do clojure, inclusive se você so teve contato com paradigma de orientação a objeto.
- Functional Programming in 40 Minutes - Russ Olsen
- Functional Design Patterns - Scott Wlaschin
- From Concurrency to Parallelism
- Leon Barrett - Clojure Parallelism Beyond Futures
- core async Concurrency Without Callbacks - Stuart Halloway
- Programação Funcional Parte 2 - Functors e Monads
- Concurrency is not Parallelism by Rob Pike
- Clojure introdução à programação funcional - Gregorio Melo - Alura
- Clojure Tutorial Canal do Youtube - Derek Banas
- Podcast sobre funcional e clojure - Hipster
- [Components]: Clojure framework to manipulate state of application
- Programação Funcional - Introdução Clojure - Gregorio Melo
- Living Clojure - Carin Meier
- Clojure for the brave and true - book
- Iniciando em Clojure - Gregorio Melo
- Lendo Clojure de outra forma - Gregorio Melo
- Encontrei esse conteudo em um github, acredito que tenha relação com a universidade de helsinque na finlandia
- Clojure: Entendendo (Infinite) Lazy Sequences - Antonio Gabriel Pereira de Andrade
- Asynchronous Clojure
Na pasta anotações você encontra o conteudo que estudei nos respectivos dias, portanto o nivel de complexidade será aumentado conforme avanço nos estudos da linguagem para facilitar a consulta vou classificar pelos meses:
Dezembro 2020:
- Comecei os estudos a partir do dia 25/12/2020, não tinha conhecimento sobre a linguagem de programação clojure, estava aprendendo a sintaxe, portanto os exemplos são bem simples.
Janeiro 2021:
-
Comecei a organizar o codigo melhor, pois aprendi como utilizar referência de importação para facilitar a organização do codigo.
-
O conhecimento sobre a sintaxe da linguagem de programação está mais claro, aprendi a utilizar funções e criar minhas proprias, comecei a estudar recursividade e utilizar os argumentos como condicao para execução de uma função.
-
Estou começando a entender melhor como funciona coleções dentro do clojure e as funções que existem na linguagem para facilitar sua manipulação, como filter, map, group-by, recur, loop, keep e etc, além disso comecei a entender que a maior parte das funções do clojure são lazy, isto é, entenda como "executam o necessário", dessa forma fica claro que operações com uma grande quantidade de dados se tornam mais performaticas.
-
Comecei a entender como funciona o tratamento de exceções e a criação da estrutura de dados fila, assim como lidar com dados mutaveis atraves de atoms e swap!.