Pular para o conteúdo principal

Clojure

Clojure é uma linguagem de programação de propósito geral com ênfase em programação funcional. É executada na Máquina Virtual Java (JVM) por padrão, mas existem versões alternativas para outros ambientes de execução, como Clojure CLR, que compila código para a plataforma .NET e ClojureScript, que compila código Clojure para JavaScript. 


Ele incentiva imutabilidade e estruturas de dados imutáveis. Enquanto o seu sistema de tipos é totalmente dinâmico, esforços recentes também têm procurado a implementação gradual de tipagem forte. Clojure incentiva programadores a serem explícitos sobre o gerenciamento de estado e identidade. Este foco em programação com valores imutáveis ​​e explícitos no decorrer do tempo se destina a facilitar o desenvolvimento de programas mais robustos.

A Programação Funcional é um dos diversos paradigmas do universo da programação, isto é, uma outra maneira de organizar nosso pensamento ao escrever um código e seu maior diferencial é que as funções são o principal elemento utilizado para criar seus programas.

Nos artigos abaixo veremos as vantagens e desvantagens da linguagem e do paradigma, trabalharemos com estado em um mundo que favorece imutabilidade, entendendo como criar garantias com schemas, trabalhando com boas práticas e criando testes de exemplos e de propriedades.

Veja mais em:

Nossas postagens

Comentários

Mais visitadas

Palavra com a primeira letra em Maiúsculo (Delphi)

Para casos onde temos palavras que são armazenadas todas em maiúsculo, geralmente surge a necessidade de utiliza-la de uma maneira mais elegante, como o título sugere, então vamos lá: function Primeira_Letra_Maiuscula(p_texto: string): string; begin IF p_texto <> '' THEN result := UpperCase(Copy(p_texto,1,1))+LowerCase(Copy(p_texto,2,Length(p_texto))); end;

Centralizar Texto em Edit

Como todos sabemos o Edit mantém todo texto digitado a esquerda, o que não fica bem quando o usamos para a entrada de números, pois bem, o exemplo abaixo apresenta uma alternativa para centralizar um determinado valor dentro de um Edit: procedure EditChange(Sender: TObject); var vl_label : TLabel; //variável do tipo Label begin vl_label := TLabel.Create(self); //criamos um label WITH vl_label DO BEGIN Font.Name := TEdit(sender).Font.Name; //pegamos a fonte usada no edit Caption := TEdit(sender).Text; //pegamos o conteúdo do edit SendMessage(TEdit(sender).Handle, EM_SETMARGINS, EC_LEFTMARGIN, (TEdit(sender).Width-vl_label.Width) div 2); //centraliza no label e retorna para o edit END ; vl_label.Free; end ;

Funções de Data e Hora (Delphi)

É muito comum nos depararmos no dia a dia com a necessidade de manipular datas e horas, seja para um calculo de permanência, dias de atraso enfim, é praticamente escapar de alguma situação que necessite desse tipo de controle. Assim como a necessidade e se utilizar algum recurso para manipular as datas e horas de alguma maneira e freqüente, as duvidas de como o faze-lo também é, basta um breve olhar em qualquer fórum especializado e lá está, alguma duvida relacionada, por isso decidi falar um pouco sobre uma unit muito poderosa chamada DateUtils para a manipulação de data e hora, com um grande numero de métodos e classes que facilitam a vida de qualquer um. Alguns exemplos: CompareDate(constA, B: TDateTime): TValueRelationship; Compara apenas a data de dois valores (do tipo TDateTime) retornando: LessThanValue O primeiro valor é menor que o segundo EqualsValue Os valores são iguais GreaterThanValue O primeiro valor é maior que o segundo CompareDateTime(const A, B: TD...