Seguinte: Expressões Condicionais Acima: Elementos da Linguagem Anterior: Definição de Funções
Índice remissivo

Símbolos

A definição de funções em Lisp passa pela utilização dos seus nomes. Nomes para as funções e nomes para os parâmetros das funções.

Uma vez que o Lisp, antes de avaliar qualquer expressão, tem de a ler e converter internamente para um objecto, os nomes que criamos têm de ter um objecto associado. Esse objecto é designado por símbolo. Um símbolo é, pois, a representação interna de um nome.

Em Lisp, quase não existem limitações para a escrita de nomes. Um nome como quadrado é tão bom como + ou como 1+2*3 pois o que separa um nome dos outros elementos de uma combinação são apenas parênteses e espaços em branco. Por exemplo, é perfeitamente correcto definir e usar a seguinte função:

> (defun x+y*z (x y z) 
     (+ (* y z) x))
x+y*z
> (x+y*z 1 2 3)
7

Lisp atribui um significado muito especial aos símbolos. Reparemos que, quando definimos uma função, os parâmetros formais da função são símbolos. O nome da função também é um símbolo. Quando escrevemos uma combinação, o avaliador de Lisp usa a definição de função que foi associada ao símbolo que constitui o primeiro elemento da combinação. Quando, no corpo de uma função, usamos um símbolo para nos referimos a um parâmetro formal, esse símbolo tem como valor o respectivo parâmetro actual que lhe foi associado naquela combinação. Por esta descrição se vê que os símbolos constituem um dos elementos fundamentais da linguagem Lisp.



Copyright António Leitão, 1995