Differences

This shows you the differences between two versions of the page.

Link to this comparison view

lisp-2-trabalho [2012/04/08 20:17]
clp
lisp-2-trabalho [2012/04/08 21:58] (current)
clp
Line 1: Line 1:
-======Características Técnicas======+Grupo responsável:      
 +  * Yuri Marini Peter 
 +  * Mohammad Basciri Nimer Hammad 
 +  * Marcelo Zschornack
  
-***Tipos de dados**: átomo e lista. É com esses dois tipos de dados que se constroem as expressões-S, as estruturas básicas de LISP. +__Sobre composição dos nomes:__
  
-   Uma expressão é um átomoque é uma sequência de letras (por exemplo: foo), ou uma lista de zero ou mais expressões, separadas por espaços em branco e enquadradas por parêntesisDe seguida mostram-se várias expressões:+**-Qual o tamanho máximo que podem ter os nomes?** 
 +Tamanho indefinidoonde o primeiro caracter é uma letra.
  
-<code lisp> +**-Existe distinção entre maiúsculas e minúsculas na composição dos nomes?** 
-foo +Somente minúsculas são aceitas.
-() +
-(foo) +
-(foo bar) +
-(a b (c) d) +
-</code>+
  
-   A última expressão é uma lista de quatro elementos, o terceiro dos quais é uma lista de um elemento. +**-Quantas palavra-chave e palavra reservada existem na linguagem?** 
-    +Há 7 operadores primitivos.
-**-Operadores Primitivos:** +
--__Quote__: (quote x ) retorna x. Para uma leitura mais simples abreviamos (quote x) por 'x.+
  
-<code lisp> +__****Sobre as variáveis:****__
-> (quote a) +
-+
-> 'a +
-+
-> (quote (a b c)) +
-(a b c) +
-</code>+
  
--__Atom__: (atom x) retorna o átomo t se o valor de x é um átomo ou lista vazia (). Em Lisp convenciona-se usar o átomo t como representando o valor lógico verdade, e a lista vazia como o valor lógico falso.+**-Existe suporte apelidos?** 
 +Sim.
  
-<code lisp> +**-Qual é faixa de valores das variáveis em função do tipo?**
-> (atom 'a+
-+
-> (atom '(a b c) +
-() +
-> (atom '()) +
-+
-</code>+
  
-Através de quoting uma lista protege de ser avaliada. Uma lista unquoted como argumento de um operador, como por exemplo 'atom' 
  
-<code lisp> +**-Que tipos de declarações são aceitas (implícitas, explícitas, etc.)?** 
-(atom (atom ' a)+Implícitas.Não se usa declarações explícitas porque LISP faz uso de funções de ordem superior.
-> t +
-</code>+
  
-Enquanto uma lista quoted é tratada como uma mera lista, neste caso uma lista de dois elementos. 
-<code lisp> 
-> (atom '(atom 'a)) 
-() 
-</code> 
  
-'quote' está intimamente ligado uma das características distintivas de Lisp: o código e os dados são feitos de uma mesma estrutura, e o operador 'quote' é uma maneira de distinguir os dois.+**-Existe suporte vinculação dinâmica de tipos?** 
 +Sim.
  
--**eq**: (eq x y) retorna t se os valores de x e y são o mesmo átomo ou ambos uma lista vazia, e () caso contrário. 
- 
-<code lisp> 
-> (eq 'a 'a) 
-t 
-> (eq 'a 'b) 
-() 
-> (eq '() '()) 
-t 
-</code> 
- 
--**car**:(car x) espera que o valor de x seja uma lista, e retorna o seu primeiro elemento. 
- 
-<code lisp> 
-> (car '(a b c)) 
-a 
-</code> 
- 
--**cdr**:(cdr x ) espera que o valor de x seja uma lista, e retorna o resto da lista a seguir do primeiro elemento. 
- 
-<code lisp> 
-> (cdr '(a b c)) 
-(b c) 
-</code> 
- 
--**cons**:(cons x y) espera que o valor de y seja uma lista, e retorna uma lista contendo o valor de x seguido dos elementos valor de y. 
- 
-<code lisp> 
-> (cons 'a '(b c)) 
-(a b c) 
-> (cons 'a (cons 'b (cons 'c '()))) 
-(a b c) 
-> (car (cons 'a '(b c))) 
-a 
-> (cdr (cons 'a '(b c))) 
-(b c) 
-</code> 
- 
--**cond**: (cond (p1 e1) ... (pn en)) é avaliado da seguinte forma. As expressões p são avaliadas até que uma retorna t. Quando uma é encontrada, o valor correspondente da expressão e é retornado como o valor total da expressão cond. 
- 
-<code lisp> 
-> (cond ((eq 'a 'b) 'first) 
-        ((atom 'a) 'second)) 
-second 
-</code> 
  
 +**-Existe suporte a tipificação forte?**
 +Sim
  
 +**-Como é o escopo? Estático, dinâmico ou ambos?**
 +Algumas familías da linguagem LISP se declaram como dinâmico (Newlisp, Picolisp) e outras como estáticos (Clojure, Common Lisp e Scheme).
 
lisp-2-trabalho.1333927034.txt.gz · Last modified: 2012/04/08 20:17 by clp · [Old revisions]