Alô Marcelino,

On Mon, 25 Aug 2014 12:56:44 -0300 Marcelino Pinheiro <[email protected]> wrote:

> obrigado pela resposta, tenho acompanhado o lisp, lido bastante sobre
> as linguagens funcionais, fazendo exercicios dos livros, etc..
>
> Tenho notado interesse das pessoas do meio por linguagens funcionais e
> outras linguagens influenciadas por ela.

A rigor, linguagens Lisp não são funcionais puras.  Há operadores para
geração de efeitos colaterais como, por exemplo, setq (Common Lisp,
Emacs Lisp) e set! (Scheme).  Eu diria que são multiparadigma.

É possível, porém, programar de forma funcional em boa parte das
linguagens Lisp.  Recursos como procedimentos (ou funções) como objetos
de primeira classe e a implementação de condicionais como expressões são
praticamente comuns a todas as linguagens dessa família.

Algumas linguagens Lisp oferecem recursos que tornam a programação
funcional mais natural e segura do que em outras.  Por exemplo, Scheme
exige que implementações forneçam "recursão de última chamada" (tradução
livre e possivelmente ridícula de "tail recursion"), o que permite
representar iterações com recursão, sem limites.  Linguagens sem essa
otimização normalmente apresentam um limite máximo de profundidade de
recursão (e.g., sys.getrecursionlimit(), em Python) e fornecem algum
mecanismo para a execução de processos iterativos (e.g., `for', `while'
etc.).  Em Scheme, processos iterativos podem ser representados com a
aplicação recursiva de procedimentos.  Por ser tão comum, esse idioma
pode ser expresso com uma sintaxe especial, conhecida como "named let".

Mas, estritamente falando, linguagens Lisp em geral não são funcionais,
emboram forneçam bons recursos para a programação funcional.

Mario
-- 
http://parenteses.org/mario

-- 
You received this message because you are subscribed to the Google Groups 
"Lisp-br" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/lisp-br.
For more options, visit https://groups.google.com/d/optout.

Responder a