Aprendendo Clojure Do Zero #4: Entendendo a ideia de Code As Data

  Рет қаралды 242

Dev Eficiente

Dev Eficiente

Күн бұрын

Este é o quarto episódio da série onde vou compartilhar os detalhes da minha jornada de aprendizagem rumo a ganhar conforto programando em Clojure.
A ideia é que eu chegue o mais preparado possível para o meu próximo desafio(além do Dev + Eficiente), a Nubank :).
No episódio de hoje eu compartilho meu entendimento sobre a ideia de Code As Data compartilhada no Clojure.
PS: Me empolguei quando falo do if lá, está errado. O if é uma "special form" e a análise dele é feita diretamente pelo compilador. Tanto é que se rodar (list (if param1 param2 param3)) o erro retornado é: Unable to resolve symbol: if in this context. Obrigado IanOliveiraTI pela correção.
Sobre a Jornada Dev Eficiente
A Jornada Dev + Eficiente é um treinamento cujo propósito é acelerar seu desenvolvimento como uma pessoa cada vez mais especializada em Design e Arquitetura de Software.
A comunidade é mantida por Alberto, Maurício Aniche e Rafael Ponte.
Para saber mais, acesse em deveficiente.com
Saiba mais sobre Alberto, Aniche e Rafael
Github Alberto: github.com/asouza
Twitter Alberto: / alberto_souza
Github Aniche: github.com/mau...
Twitter Aniche: / mauricioaniche
Github Rafael: github.com/rponte
Twitter Rafael: / rponte
Instagram Dev Eficiente: / deveficiente
Links
* Clojure as a Dialect of Lisp - clojure.org/ab...
* Podcast com o criador do Clojure - se-radio.net/2...

Пікірлер: 6
@IanOliveiraTI
@IanOliveiraTI 2 күн бұрын
quando voce escreve: (eval (if 4 4 2)) no caso o eval esta evaluando apenas o resultado da operacao (if 4 4 2) e nao a lista que voce passou. no fim fica assim (eval 4) Se voce quiser usar evaluar a lista voce precisa usar o sintax sugar ' (eval '(if 4 4 2)) ou a funcao list como fez nos outros examplos sobre a utilidade do code-as-data no meu ponto de vista: torna bem facil voce "extender" a linguagem criando novas macros. um exemplo bem comum de macros de usuarios 'e essa when-let* (defmacro when-let* [bindings & body] `(let ~bindings (if (and ~@(take-nth 2 bindings)) (do ~@body) ))) que eh basicamente um when-let que permite mutiplos bindings... ter code as data facilita e muito criar esse tipo de extensao. Desculpa os milhoes de erros de acentuacao e portugues meu SO ta em outro idioma
@IanOliveiraTI
@IanOliveiraTI 2 күн бұрын
Ah sempre bom lembrar: The first rule of the macro club is: don't write macros.
@IanOliveiraTI
@IanOliveiraTI 2 күн бұрын
E de forma geral acho que ce entendeu de forma correta, bons estudo.. clojure 'e muito divertido.
@DevEficiente
@DevEficiente Күн бұрын
Verdade demais, me empolguei. Deixei um PS na descrição, já avisando do erro. E valeu demais pelo resto do feedback!
@williamdiegocampos5783
@williamdiegocampos5783 2 күн бұрын
Bons estudos por aí... Mas admito que sem pesquisar, mas te acompanhando, ainda não sei qual problema o Cloujure resolve. Por que devo adotar Cloujure? Quando devo considerar o uso?
@DevEficiente
@DevEficiente Күн бұрын
É uma linguagem de uso geral, não resolve nada que não possa ser resolvido pelo Java, C# ou Javascript. Só faz de maneira diferente :).
Um Plano Prático para Ser uma pessa Dev Mais Eficiente
20:27
Dev Eficiente
Рет қаралды 656
The CUTEST flower girl on YouTube (2019-2024)
00:10
Hungry FAM
Рет қаралды 51 МЛН
SCHOOLBOY. Мама флексит 🫣👩🏻
00:41
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 7 МЛН
SHAPALAQ 6 серия / 3 часть #aminkavitaminka #aminak #aminokka #расулшоу
00:59
Аминка Витаминка
Рет қаралды 244 М.
Aprendendo Clojure Do Zero #1: Como se orientar no começo de tudo
27:03
O Meu Linux é Melhor que o Seu! E posso provar. - Diocast
1:50:20
Diolinux Labs
Рет қаралды 42 М.
Simple Code, High Performance
2:50:14
Molly Rocket
Рет қаралды 250 М.
The CUTEST flower girl on YouTube (2019-2024)
00:10
Hungry FAM
Рет қаралды 51 МЛН