Funcional - Universidade Federal de So Carlos Departamento...

Info iconThis preview shows pages 1–9. Sign up to view the full content.

View Full Document Right Arrow Icon
Universidade Federal de São Carlos Departamento de Computação Linguagem de  Programação Prof. Dr. Antonio Francisco do Prado e-mail: prado@dc.ufscar.br
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Linguagem LISP Funções Primitivas LISP Predicados Estruturas de Controle e Procedimentos Recursividade Abstração de dados e Mapeamento Imprimindo e Lendo Lista de Propriedades Array Variáveis Especiais e Chamada de Função
Background image of page 2
Linguagem LISP Histórico Foi desenvolvido em 1959 pelo Grupo de Inteligência Artificial do M.I.T., sob a direção do Prof. John McCarthy. Facilitar experimentos no sistema proposto chamado Advice Taker. Foi desenvolvido para IBM 704. Hoje existem várias versões do LISP. Objeto de Dados Os dados na linguagem Lisp são chamados S-expressions ou expressões simbólicas. A mais simples das expressões simbólicas é o símbolo atômico ou átomo.
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Definição Sintática do Átomo <átomo> = <átomo list> | <átomo num> <átomo list> = <letra> | <letra><partícula> <partícula> = <vazio> | <letra><partícula> | <dígito><partícula> <átomo num> = <vazio> | <dígito><átomo num> <letra> = A | B | C | D | . .. | Z <dígito> = 0 | 1 | 2 | . .. | 9 Definição de uma S-expression <S-expression> = <átomo> | (<S-expression>. <S-expression>) Exemplos de expressões simbólicas: (A.B) (A.(X.(R.(S.H)))) ((A.B).C) ((((K.L).C).W).V) (A.(B.C)) (UM.(DOIS.TRES)) ((A.B).(B.C)) (TOC.TOC)
Background image of page 4
Definição de uma Lista Uma S-expression para uma lista de um elemento é o elemento pontuado com nil. Exemplo : (A) => ( A . nil ) Uma S-expression para uma lista com dois elementos, é o primeiro elemento pontuado com a lista do segundo elemento. Exemplo : ( A B ) => ( A . ( B . nil ) ) Uma S-expression corresponde a uma lista, se e somente se, a árvore binária para a S-expression tiver um NIL para cada terminal direito da sub-árvore. Exemplo : ( A B ) ou ( A . ( B . nil ) ) A B nil
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Listas Um arranjo conveniente de dados em muitas aplicações podem ser representadas por listas ordenadas. Simples expressões algébricas podem ser representadas por listas de átomos: (SOMA X Y) ou (VEZES I J) Um elemento de uma lista pode ser uma lista. Exemplo : ( ( A ) ( B C ) ) => ( ( A . nil ) . ( ( B . ( C . nil ) ) . nil ) ) NIL corresponde a lista vazia. Toda lista é um S-expression, mas nem toda S-expression é uma lista.
Background image of page 6
Em se tratando de sintaxe, qualquer coisa envolta por parênteses é uma lista. 1. E se colocarmos parênteses ao redor de nada ? 2. E se colocarmos parênteses ao redor de outra lista ? Em ambos os casos, a resposta é a mesma: Você ainda terá uma lista. Portanto, a expressões seguintes são listas: ( ) ( ( ) ) ( ( ( ) ) ) ( ( a b c ) ) ( ( 1 2 ) 3 4 ) ( mouse ( monitor 512 342 ) ( teclado BR ) ) O único caso onde você não têm uma lista é quando você têm um abre-parênteses sem seu correspondente fecha- parênteses. Ex: ( a b c ( ( ( 25 g ) 34 ( ( ( ) ) ( ( ) ) )
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
A representação de uma árvore binária em S-expression é muito simples. ( A . B )
Background image of page 8
Image of page 9
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 100

Funcional - Universidade Federal de So Carlos Departamento...

This preview shows document pages 1 - 9. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online