Perguntas com a marcação «clojure»

11
Tecelagem de código de bytes vs macros Lisp

Eu tenho lido sobre as bibliotecas que as pessoas escreveram para linguagens como Java e C # que utilizam tecelagem de código de bytes para fazer coisas como interceptar chamadas de função, inserir código de log etc. etc. Também estive lendo nas macros Lisp / Clojure tente entender melhor como...

11
Aproximando-se do SICP em Clojure em vez de Scheme

Sou estudante de terceiro ano em um programa de engenharia de software e trouxe a idéia de ler o SICP para um consultor para obter uma compreensão mais profunda e mais fundamental dos princípios por trás de todo esse software que criamos. Ele sugeriu não aprender o esquema para concluir o livro...

11
Os colchetes e as chaves do Clojure ainda são expressões S?

Estou tentando aprender Lisp e olhando para todos os Lisps por aí e suas diferenças. Vejo que, em algumas implementações do Scheme, você pode usar colchetes de forma intercambiável com colchetes para facilitar a leitura, portanto, como são tratados da mesma forma, presumo que ainda sejam apenas...

11
Exemplo de composição de memória transacional de software

Uma das principais vantagens da memória transacional de software que sempre é mencionada é composição e modularidade. Diferentes fragmentos podem ser combinados para produzir componentes maiores. Em programas baseados em bloqueio, esse geralmente não é o caso. Estou procurando um exemplo simples...

9
Acessando o histórico de um `ref` no Clojure

A documentação para ref mostra uma opção: max-history e afirma que "refs acumulam histórico dinamicamente conforme necessário para lidar com demandas de leitura". Eu posso ver que há histórico no REPL, mas não vejo como encontrar valores anteriores de uma ref: user=> (def the-world (ref "hello"...

7
Quando eu exigiria uma macro em vez de uma função?

Sou novo no Clojure, sou novo no Macros e não tenho experiência anterior no Lisp. Eu criei meu próprio caso de switch como formulário e acabei com isso: (defmacro switch-case [v cases default] (if (cases v) (cases v) default )) e então tentei criar uma função e acabei com isso: (defn...