1. O documento discute elementos da programação funcional em Lisp, incluindo funções como mapcar, lambda, ordenação de listas e igualdade.
2. É apresentado um roteiro com tópicos como ordenamento, igualdade e identidade, e funções para listas como append e reverse.
3. Exemplos demonstram o uso de funções como funcall, apply, mapcar, find e operações em listas como união e interseção.
Este documento discute paradigmas de programação funcional em Lisp. Resume os principais tópicos abordados: 1) Manipulação de variáveis e argumentos, incluindo escopo, variáveis opcionais e default; 2) Formatação de saída e forms especiais; 3) Tipos de dados como vetores, strings e estruturas.
Este documento fornece instruções para implementar um compilador dividido em 4 etapas: 1) Análise léxica e sintática com inserção na tabela de símbolos, 2) Geração de código intermediário, 3) Otimizações simples, 4) Geração de código assembly. A análise léxica reconhece tokens como palavras-chave e operadores, enquanto a análise sintática define regras gramaticais. Um conflito de precedência no if/else é resolvido atribuindo maior precedência
O documento discute paradigmas de programação funcional em Lisp, apresentando:
1) Uma breve história da linguagem Lisp e seu dialeto mais popular CLisp;
2) Conceitos básicos como átomos, listas, funções predefinidas e definição de funções;
3) Mecanismos de controle de fluxo como condicionais if/cond.
O documento discute paradigmas de programação funcional em Lisp, apresentando:
1) Uma breve história da linguagem Lisp e seu dialeto mais popular CLisp;
2) Conceitos básicos como átomos, listas, funções predefinidas e definição de funções;
3) Mecanismos de controle de fluxo como condicionais if/cond.
Modelagem relacional e normalização de dadosjulianaveregue
1) O documento discute modelagem relacional de dados e normalização para evitar anomalias.
2) A normalização divide tabelas com múltiplos assuntos em tabelas separadas com um único assunto cada.
3) Isso minimiza redundâncias, inconsistências e facilita manutenção do banco de dados.
O documento descreve uma lista encadeada de inteiros em C++. A lista armazena elementos de forma sequencial usando nós ligados por ponteiros. O documento explica a interface da classe lista e como implementar métodos como inserção, remoção e impressão percorrendo a lista através dos nós.
1) O documento discute programação funcional, incluindo funções como valores, programação sem efeitos colaterais, funções de ordem superior e Scheme.
2) Apresenta exemplos de funções em Scheme, incluindo ordenação de listas usando diferentes critérios de comparação.
3) Demonstra como funções podem receber e retornar outras funções, e como isso permite a criação de funções mais gerais.
Slides da Apresentação realizada 24/09/2015 na Trilha de Java do The Developers Conference.
Resumo:
Programadores Java estão acostumados a desenvolver preocupando-se não somente com o que deveria ser feito, mas também em como fazer. Um simples código para buscar os dois maiores valores de uma lista pode levar tempo precioso de desenvolvimento. Para solucionar esse e outros problemas, o Java 8 traz uma série de melhorias buscando trazer para o Java muito da programação funcional que víamos em outras linguagens. Expressões lambda, streams entre outras novidades do Java serão apresentadas nessa palestra de forma simples e direto ao ponto.
http://www.thedevelopersconference.com.br/tdc/2015/portoalegre/trilha-java
Este documento discute paradigmas de programação funcional em Lisp. Resume os principais tópicos abordados: 1) Manipulação de variáveis e argumentos, incluindo escopo, variáveis opcionais e default; 2) Formatação de saída e forms especiais; 3) Tipos de dados como vetores, strings e estruturas.
Este documento fornece instruções para implementar um compilador dividido em 4 etapas: 1) Análise léxica e sintática com inserção na tabela de símbolos, 2) Geração de código intermediário, 3) Otimizações simples, 4) Geração de código assembly. A análise léxica reconhece tokens como palavras-chave e operadores, enquanto a análise sintática define regras gramaticais. Um conflito de precedência no if/else é resolvido atribuindo maior precedência
O documento discute paradigmas de programação funcional em Lisp, apresentando:
1) Uma breve história da linguagem Lisp e seu dialeto mais popular CLisp;
2) Conceitos básicos como átomos, listas, funções predefinidas e definição de funções;
3) Mecanismos de controle de fluxo como condicionais if/cond.
O documento discute paradigmas de programação funcional em Lisp, apresentando:
1) Uma breve história da linguagem Lisp e seu dialeto mais popular CLisp;
2) Conceitos básicos como átomos, listas, funções predefinidas e definição de funções;
3) Mecanismos de controle de fluxo como condicionais if/cond.
Modelagem relacional e normalização de dadosjulianaveregue
1) O documento discute modelagem relacional de dados e normalização para evitar anomalias.
2) A normalização divide tabelas com múltiplos assuntos em tabelas separadas com um único assunto cada.
3) Isso minimiza redundâncias, inconsistências e facilita manutenção do banco de dados.
O documento descreve uma lista encadeada de inteiros em C++. A lista armazena elementos de forma sequencial usando nós ligados por ponteiros. O documento explica a interface da classe lista e como implementar métodos como inserção, remoção e impressão percorrendo a lista através dos nós.
1) O documento discute programação funcional, incluindo funções como valores, programação sem efeitos colaterais, funções de ordem superior e Scheme.
2) Apresenta exemplos de funções em Scheme, incluindo ordenação de listas usando diferentes critérios de comparação.
3) Demonstra como funções podem receber e retornar outras funções, e como isso permite a criação de funções mais gerais.
Slides da Apresentação realizada 24/09/2015 na Trilha de Java do The Developers Conference.
Resumo:
Programadores Java estão acostumados a desenvolver preocupando-se não somente com o que deveria ser feito, mas também em como fazer. Um simples código para buscar os dois maiores valores de uma lista pode levar tempo precioso de desenvolvimento. Para solucionar esse e outros problemas, o Java 8 traz uma série de melhorias buscando trazer para o Java muito da programação funcional que víamos em outras linguagens. Expressões lambda, streams entre outras novidades do Java serão apresentadas nessa palestra de forma simples e direto ao ponto.
http://www.thedevelopersconference.com.br/tdc/2015/portoalegre/trilha-java
Este documento descreve os principais conceitos de algoritmos e programação de computadores, incluindo a organização básica de um computador, linguagens de máquina e programação, algoritmos, variáveis, constantes, expressões, comandos de entrada e saída.
O documento discute procedimentos e funções em algoritmos e estruturas de dados. Apresenta os conceitos de subalgoritmos, projeto descendente e dividir para conquistar. Explica como declarar funções, definindo seu tipo de retorno, parâmetros e corpo. Demonstra como ativar funções, fazendo a correspondência entre parâmetros formais e atuais. Por fim, fornece exemplos e exercícios sobre funções.
O documento discute procedimentos e funções em algoritmos e estruturas de dados. Apresenta os conceitos de subalgoritmos, subprogramas e funções, explicando como dividir um problema principal em subproblemas menores. Detalha como declarar funções, especificando seu tipo de retorno, parâmetros e corpo, e como ativá-las através de chamadas em um programa principal. Por fim, fornece exemplos e exercícios sobre funções matemáticas e suas aplicações.
O documento discute procedimentos e funções em algoritmos e estruturas de dados. Apresenta os conceitos de subalgoritmos, projeto descendente e dividir para conquistar. Explica como declarar funções, definindo seu tipo de retorno, parâmetros e corpo. Demonstra como ativar funções, fazendo a correspondência entre parâmetros formais e atuais. Por fim, fornece exemplos e exercícios sobre funções.
1) O documento apresenta um minicurso de introdução à linguagem de programação Python, abordando tópicos como história, tipos de dados, estruturas de controle, funções, orientação a objetos.
2) São apresentados os principais tipos de dados em Python como números, strings, listas, tuplas e dicionários, assim como estruturas de controle como if/else, for e while.
3) O documento também introduz conceitos como classes, métodos, herança e exceções no paradigma de programação orientada a objetos em Python.
O documento descreve um curso sobre o programa computacional R ministrado por Paulo Justiniano Ribeiro Junior. Ele é professor do Departamento de Estatística da Universidade Federal do Paraná e tem experiência no uso do R desde 1999. O curso apresenta os principais comandos e funcionalidades do R, incluindo operações aritméticas, tipos de objetos, criação e manipulação de vetores, matrizes e dataframes.
O documento fornece uma introdução às linguagens de programação Pascal e C++, descrevendo suas principais características como: tipos de dados, variáveis, constantes, operadores, estrutura de programas, comandos, procedimentos e funções. O Pascal é apresentado de forma mais detalhada com exemplos de seus recursos, enquanto o C++ é introduzido com foco nos conceitos de orientação a objetos.
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
O documento apresenta uma introdução ao workshop de Python realizado na IEEE Week '17. Apresenta brevemente conceitos fundamentais da linguagem como variáveis, funções, listas, dicionários e operações com strings. Explica também como ler e processar dados de ficheiros e da internet usando bibliotecas como urllib e json.
1. O documento descreve as funções no Excel 2007, incluindo suas categorias, sintaxe e exemplos de uso de funções matemáticas, estatísticas e lógicas.
2. As funções são divididas em categorias como financeiras, matemáticas, estatísticas e lógicas, e podem ser usadas para realizar cálculos simples ou complexos de forma compacta.
3. A sintaxe de uma função inclui o nome da função seguido de parênteses contendo seus argumentos, e exemplos demonstram como usar funções
Mapeamento de Objetos para o Modelo Relacional.pptJoberthSilva
O documento discute o mapeamento de objetos para o modelo relacional, introduzindo os conceitos de objetos persistentes e transientes e as diferenças entre o modelo de classes e o modelo entidade-relacionamento. Também aborda os procedimentos para mapeamento de classes, atributos, associações, agregações, generalizações e classes associativas.
Programação funcional tipada: uma introduçãoArthur Xavier
1. A introdução apresenta programação funcional e o autor Arthur Xavier.
2. Os benefícios da programação funcional incluem previsibilidade, testabilidade, facilidade de raciocínio e simplicidade.
3. O documento discute conceitos como funções puras, imutabilidade, tipos, composição e recursividade.
Este documento descreve os diferentes tipos de operadores de cálculo no Excel, incluindo operadores aritméticos, de comparação, de texto e de referência. Ele explica a ordem na qual o Excel calcula operações em fórmulas e como usar parênteses para alterar a ordem de precedência.
O documento descreve as características da linguagem de programação funcional Standard ML e sua extensão CPN ML, incluindo tipos de dados, declaração de variáveis e funções, recursividade, casamento de padrões e inscrições para modelagem de redes de Petri coloridas.
O documento apresenta exemplos de funções em Python. Discute como funções organizam o código em blocos autônomos com nomes específicos que podem receber parâmetros e retornar valores. Apresenta sintaxes básicas de funções e exercícios resolvidos que demonstram o uso de funções para resolver problemas como cálculos matemáticos e análise de listas.
O documento descreve operadores, operações e funções em Pascal, incluindo: operadores aritméticos como +, -, *, /, DIV e MOD; operadores relacionais como =, <, >; operadores lógicos como AND e OR; ordem de precedência dos operadores; e funções predefinidas como ABS, ROUND, SQRT e funções de formatação do ecrã como TextBackGround e TextColor.
O documento explica o que são funções analíticas no SQL, suas vantagens em relação a outras funções, sintaxe e exemplos de funções como ROW_NUMBER, RANK, DENSE_RANK, FIRST_VALUE e LAST_VALUE. Demonstra como essas funções permitem agregar valores e ordenar linhas de dados de forma flexível.
Python é uma linguagem de programação multi-paradigma, interpretada e de tipagem dinâmica que possui uma biblioteca extensa. O documento apresenta os objetivos, características, sintaxe básica, controle de fluxo, orientação a objetos, programação funcional e módulos em Python.
Os principais tipos de dados suportados pelo mySQL para armazenamento de strings, numéricos e datas são descritos no documento. Strings podem ser armazenadas usando CHAR, VARCHAR, TINYBLOB entre outros e ocupam espaço de 1 a 8 bytes dependendo do tipo e tamanho. Números podem ser armazenados usando TINYINT, SMALLINT, INT e outros e ocupam de 1 a 8 bytes. Datas podem ser armazenadas usando DATE, DATETIME e TIMESTAMP e ocupam de 1 a 8 bytes.
O documento discute a programação funcional em JavaScript. Ele define programação funcional, foca em aspectos como manutenibilidade e testabilidade, e apresenta exemplos de funções puras, imutabilidade, mapas, filtros, reduce, currying e encadeamento de chamadas usando pipe/compose. O documento também menciona bibliotecas funcionais como Ramda e sugere estudar linguagens puramente funcionais após entender os conceitos básicos em JavaScript.
1) O documento discute programação funcional em Python, definindo o paradigma, focos e exemplos de como reduzir efeitos colaterais em programas. 2) Apresenta conceitos como funções puras e impuras, funções como cidadãos de primeira classe, partials e imutabilidade. 3) Discutem objetos versus variáveis em Python e tipos mutáveis e imutáveis na linguagem.
Este documento descreve os principais conceitos de algoritmos e programação de computadores, incluindo a organização básica de um computador, linguagens de máquina e programação, algoritmos, variáveis, constantes, expressões, comandos de entrada e saída.
O documento discute procedimentos e funções em algoritmos e estruturas de dados. Apresenta os conceitos de subalgoritmos, projeto descendente e dividir para conquistar. Explica como declarar funções, definindo seu tipo de retorno, parâmetros e corpo. Demonstra como ativar funções, fazendo a correspondência entre parâmetros formais e atuais. Por fim, fornece exemplos e exercícios sobre funções.
O documento discute procedimentos e funções em algoritmos e estruturas de dados. Apresenta os conceitos de subalgoritmos, subprogramas e funções, explicando como dividir um problema principal em subproblemas menores. Detalha como declarar funções, especificando seu tipo de retorno, parâmetros e corpo, e como ativá-las através de chamadas em um programa principal. Por fim, fornece exemplos e exercícios sobre funções matemáticas e suas aplicações.
O documento discute procedimentos e funções em algoritmos e estruturas de dados. Apresenta os conceitos de subalgoritmos, projeto descendente e dividir para conquistar. Explica como declarar funções, definindo seu tipo de retorno, parâmetros e corpo. Demonstra como ativar funções, fazendo a correspondência entre parâmetros formais e atuais. Por fim, fornece exemplos e exercícios sobre funções.
1) O documento apresenta um minicurso de introdução à linguagem de programação Python, abordando tópicos como história, tipos de dados, estruturas de controle, funções, orientação a objetos.
2) São apresentados os principais tipos de dados em Python como números, strings, listas, tuplas e dicionários, assim como estruturas de controle como if/else, for e while.
3) O documento também introduz conceitos como classes, métodos, herança e exceções no paradigma de programação orientada a objetos em Python.
O documento descreve um curso sobre o programa computacional R ministrado por Paulo Justiniano Ribeiro Junior. Ele é professor do Departamento de Estatística da Universidade Federal do Paraná e tem experiência no uso do R desde 1999. O curso apresenta os principais comandos e funcionalidades do R, incluindo operações aritméticas, tipos de objetos, criação e manipulação de vetores, matrizes e dataframes.
O documento fornece uma introdução às linguagens de programação Pascal e C++, descrevendo suas principais características como: tipos de dados, variáveis, constantes, operadores, estrutura de programas, comandos, procedimentos e funções. O Pascal é apresentado de forma mais detalhada com exemplos de seus recursos, enquanto o C++ é introduzido com foco nos conceitos de orientação a objetos.
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
O documento apresenta uma introdução ao workshop de Python realizado na IEEE Week '17. Apresenta brevemente conceitos fundamentais da linguagem como variáveis, funções, listas, dicionários e operações com strings. Explica também como ler e processar dados de ficheiros e da internet usando bibliotecas como urllib e json.
1. O documento descreve as funções no Excel 2007, incluindo suas categorias, sintaxe e exemplos de uso de funções matemáticas, estatísticas e lógicas.
2. As funções são divididas em categorias como financeiras, matemáticas, estatísticas e lógicas, e podem ser usadas para realizar cálculos simples ou complexos de forma compacta.
3. A sintaxe de uma função inclui o nome da função seguido de parênteses contendo seus argumentos, e exemplos demonstram como usar funções
Mapeamento de Objetos para o Modelo Relacional.pptJoberthSilva
O documento discute o mapeamento de objetos para o modelo relacional, introduzindo os conceitos de objetos persistentes e transientes e as diferenças entre o modelo de classes e o modelo entidade-relacionamento. Também aborda os procedimentos para mapeamento de classes, atributos, associações, agregações, generalizações e classes associativas.
Programação funcional tipada: uma introduçãoArthur Xavier
1. A introdução apresenta programação funcional e o autor Arthur Xavier.
2. Os benefícios da programação funcional incluem previsibilidade, testabilidade, facilidade de raciocínio e simplicidade.
3. O documento discute conceitos como funções puras, imutabilidade, tipos, composição e recursividade.
Este documento descreve os diferentes tipos de operadores de cálculo no Excel, incluindo operadores aritméticos, de comparação, de texto e de referência. Ele explica a ordem na qual o Excel calcula operações em fórmulas e como usar parênteses para alterar a ordem de precedência.
O documento descreve as características da linguagem de programação funcional Standard ML e sua extensão CPN ML, incluindo tipos de dados, declaração de variáveis e funções, recursividade, casamento de padrões e inscrições para modelagem de redes de Petri coloridas.
O documento apresenta exemplos de funções em Python. Discute como funções organizam o código em blocos autônomos com nomes específicos que podem receber parâmetros e retornar valores. Apresenta sintaxes básicas de funções e exercícios resolvidos que demonstram o uso de funções para resolver problemas como cálculos matemáticos e análise de listas.
O documento descreve operadores, operações e funções em Pascal, incluindo: operadores aritméticos como +, -, *, /, DIV e MOD; operadores relacionais como =, <, >; operadores lógicos como AND e OR; ordem de precedência dos operadores; e funções predefinidas como ABS, ROUND, SQRT e funções de formatação do ecrã como TextBackGround e TextColor.
O documento explica o que são funções analíticas no SQL, suas vantagens em relação a outras funções, sintaxe e exemplos de funções como ROW_NUMBER, RANK, DENSE_RANK, FIRST_VALUE e LAST_VALUE. Demonstra como essas funções permitem agregar valores e ordenar linhas de dados de forma flexível.
Python é uma linguagem de programação multi-paradigma, interpretada e de tipagem dinâmica que possui uma biblioteca extensa. O documento apresenta os objetivos, características, sintaxe básica, controle de fluxo, orientação a objetos, programação funcional e módulos em Python.
Os principais tipos de dados suportados pelo mySQL para armazenamento de strings, numéricos e datas são descritos no documento. Strings podem ser armazenadas usando CHAR, VARCHAR, TINYBLOB entre outros e ocupam espaço de 1 a 8 bytes dependendo do tipo e tamanho. Números podem ser armazenados usando TINYINT, SMALLINT, INT e outros e ocupam de 1 a 8 bytes. Datas podem ser armazenadas usando DATE, DATETIME e TIMESTAMP e ocupam de 1 a 8 bytes.
O documento discute a programação funcional em JavaScript. Ele define programação funcional, foca em aspectos como manutenibilidade e testabilidade, e apresenta exemplos de funções puras, imutabilidade, mapas, filtros, reduce, currying e encadeamento de chamadas usando pipe/compose. O documento também menciona bibliotecas funcionais como Ramda e sugere estudar linguagens puramente funcionais após entender os conceitos básicos em JavaScript.
1) O documento discute programação funcional em Python, definindo o paradigma, focos e exemplos de como reduzir efeitos colaterais em programas. 2) Apresenta conceitos como funções puras e impuras, funções como cidadãos de primeira classe, partials e imutabilidade. 3) Discutem objetos versus variáveis em Python e tipos mutáveis e imutáveis na linguagem.
Este documento resume os principais conceitos da programação lógica em Prolog, incluindo:
1) Fatos, regras, variáveis e predicados para representar dados e relações;
2) Queries para extrair informação através da dedução lógica;
3) Exemplos simples usando uma família bíblica para ilustrar os conceitos.
O documento discute os paradigmas de programação imperativo e estruturado, apresentando as linguagens BASIC e FORTRAN como exemplos históricos. Inclui detalhes sobre recursos, comandos, variáveis, entrada/saída e exemplos de código nas duas linguagens.
O documento apresenta um programa de curso sobre paradigmas de programação, abordando três principais paradigmas: imperativo, declarativo e misto. O programa inclui tópicos como noções sobre paradigmas, abstração em linguagem de máquina e assembly, programação funcional e lógica, além de discutir a importância da linguagem de programação.
O documento apresenta um programa de curso sobre paradigmas de programação, abordando três principais paradigmas (imperativo, declarativo e misto) e suas respectivas linguagens (Assembly, Prolog, Python). O documento também discute a importância da linguagem de programação e exemplifica alguns paradigmas e linguagens como Assembly, Prolog, Ruby e outras.
O documento discute os conceitos básicos da programação orientada a objetos, incluindo classes e objetos, encapsulamento, herança, polimorfismo e comunicação por mensagens. É apresentada a evolução histórica das linguagens estruturadas para a programação orientada a objetos.
1) O documento discute programação funcional em Python, definindo o paradigma, focos e exemplos de como reduzir efeitos colaterais em programas. 2) Apresenta conceitos como funções puras e impuras, funções como cidadãos de primeira classe, partials e imutabilidade. 3) Discutem objetos versus variáveis em Python e tipos mutáveis e imutáveis na linguagem.
O documento discute representação do conhecimento através de grafos conceituais, incluindo características como nós de conceitos e relações, hierarquias de tipos, operações de generalização e especialização. Também apresenta a arquitetura de subsunção de Brooks, na qual a inteligência emerge de comportamentos organizados em camadas de tratadores de tarefas assíncronas.
Este documento apresenta conceitos fundamentais de probabilidade e crenças para sistemas de inteligência artificial. Discute como crenças podem ser representadas numericamente através de probabilidades para apoiar o raciocínio de agentes. Também introduz noções como espaço amostral, eventos, variáveis aleatórias e distribuições de probabilidade para modelar incerteza.
O documento discute conceitos de processos estocásticos como cadeias de Markov e redes bayesianas temporais para modelar sistemas dinâmicos com incerteza. Exemplos mostram como inferir probabilidades de estados futuros usando cadeias de Markov dadas evidências passadas, e tipos de inferência como filtragem, previsão e suavização são explicados.
Este documento apresenta exemplos de lógica difusa em Python, incluindo variáveis linguísticas, partições difusas, inferência difusa, sistemas de controle difuso, fuzificação, defuzificação e um exemplo completo de determinação de gorjeta em um restaurante usando lógica difusa.
O documento apresenta os principais conceitos da lógica difusa e teoria dos conjuntos difusos, comparando-os com a lógica clássica. Aborda funções de pertinência, operações com conjuntos difusos como união e intersecção, e definições como suporte, núcleo e corte de nível. O objetivo é fornecer os fundamentos teóricos para aplicações de sistemas difusos em controle e inferência.
1) O documento apresenta uma introdução aos conceitos básicos de planejamento em inteligência artificial, incluindo definições de plano, planejamento clássico, representação fatorial de estados e busca em espaços de estados.
2) É descrito o formalismo PDDL para representar domínios, estados, ações e problemas de planejamento. Exemplos ilustram como escrever domínios e problemas em PDDL.
3) São explicados conceitos como planejamento em ordem parcial vs ordem total, grafos de planejamento
O documento discute representação do conhecimento através de roteiros e quadros. Roteiros representam eventos dinâmicos ao longo do tempo em um contexto específico, enquanto quadros armazenam informações sobre objetos e suas propriedades. O documento fornece exemplos de um roteiro de restaurante e um quadro de quarto de hotel para ilustrar esses conceitos.
Este documento apresenta os principais conceitos de representação do conhecimento em inteligência artificial, incluindo engenharia do conhecimento, ontologias, redes semânticas, quadros de casos e dependências conceituais. Discute como representar conceitos, relacionamentos, ações e eventos para formalizar o conhecimento e permitir raciocínio e inferência.
O documento apresenta exemplos de recursividade em Prolog, incluindo recursividade normal, iterativa e acumulador. Também mostra o uso de corte (!) para podar a árvore de busca e melhorar a eficiência, destacando a diferença entre corte verde e corte vermelho. Por fim, explica brevemente tipos, predicados meta-lógicos e extra-lógicos em Prolog.
O documento lista 20 desafios de programação em Prolog, incluindo comprimir listas, remover elementos, dividir listas, criar listas de Fibonacci, inserir elementos, extrair elementos aleatórios, gerar listas aleatórias, permutar elementos e combinar listas.
O documento apresenta 20 desafios de programação em Prolog, incluindo remover elementos de listas, verificar membros e subconjuntos de listas, inverter, encontrar elementos, gerar números aleatórios e ordenar listas.
O documento discute árvores de busca em Prolog e fornece exemplos. Em particular, (1) define árvores de busca e seus componentes, (2) mostra exemplos de árvores de busca com múltiplos caminhos de sucesso e infinitas, e (3) rastreia a execução de um programa Prolog para ilustrar a busca em profundidade.
Egito antigo resumo - aula de história.pdfsthefanydesr
O Egito Antigo foi formado a partir da mistura de diversos povos, a população era dividida em vários clãs, que se organizavam em comunidades chamadas nomos. Estes funcionavam como se fossem pequenos Estados independentes.
Por volta de 3500 a.C., os nomos se uniram formando dois reinos: o Baixo Egito, ao Norte e o Alto Egito, ao Sul. Posteriormente, em 3200 a.C., os dois reinos foram unificados por Menés, rei do alto Egito, que tornou-se o primeiro faraó, criando a primeira dinastia que deu origem ao Estado egípcio.
Começava um longo período de esplendor da civilização egípcia, também conhecida como a era dos grandes faraós.
O Que é Um Ménage à Trois?
A sociedade contemporânea está passando por grandes mudanças comportamentais no âmbito da sexualidade humana, tendo inversão de valores indescritíveis, que assusta as famílias tradicionais instituídas na Palavra de Deus.
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 10, Betel, Ordenança para buscar a paz e fazer o bem, 2Tr24, Pr Henrique, EBD NA TV, 2° TRIMESTRE DE 2024, ADULTOS, EDITORA BETEL, TEMA, ORDENANÇAS BÍBLICAS, Doutrina Fundamentais Imperativas aos Cristãos para uma vida bem-sucedida e de Comunhão com DEUS, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Comentários, Bispo Abner Ferreira, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfenpfilosofiaufu
Caderno de Resumos XVIII Encontro de Pesquisa em Filosofia da UFU, IX Encontro de Pós-Graduação em Filosofia da UFU e VII Encontro de Pesquisa em Filosofia no Ensino Médio
2. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
PARTE 3 - PARADIGMA FUNCIONAL
PROGRAMAÇÃO FUNCIONAL EM LISP
AULA 3
2 / 22
3. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Roteiro
1 Elementos Intrínsecos de Programação Funcional
2 Ordenamento
3 Igualdade e Identidade
4 Funções para listas
3 / 22
4. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Funcall
Chama uma função passando seus argumentos.
1 (defun soma (x y) (+ x y))
2 SOMA
3 > (soma 2 3)
4 5
5 > (funcall #’soma 2 3)
6 5
4 / 22
5. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Apply
Apply é semelhante a Funcall, exceto que seu argumento final deverá ser uma lista. Os
elementos desta lista são tratados como se fossem argumentos adicionais ao Funcall.
1 > (apply #’soma ’(5 6))
2 11
3 > (apply #’+ 3 4 ’(3 4))
4 14
5 / 22
6. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Maps - mapcar
O primeiro argumento a mapcar deve ser uma função de um argumento. mapcar aplica
esta função a cada elemento de uma lista dada e coleta os resultados em uma outra
lista.
1 > (defun dobro (x) (* 2 x))
2 DOBRO
3 > (dobro 2)
4 4
5 > (mapcar #’dobro ’(1 2 3 4))
6 (2 4 6 8)
7 > (mapcar #’not ’(t nil t nil t nil))
8 (NIL T NIL T NIL T)
6 / 22
7. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Funções Lambda
Funções anônimas temporárias.
1 (setq quadrado (lambda (x) (* x x)))
2 #<FUNCTION :LAMBDA (X) (* X X)>
3 [15]> (funcall quadrado 2)
4 4
5 >#’(lambda (x) (+ x 3))
6 #<FUNCTION :LAMBDA (X) (+ X 3)>
7 > (funcall * 5) ;observe que neste contexto o * é uma
8 ;variável que representa o último form
9 ;que foi digitado..
10 8
7 / 22
8. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Lambda com Mapcar
A combinação de lambda e mapcar pode substituir muitos laços. Por exemplo, os dois
forms seguintes são equivalentes:
1 > (do ((x ’(1 2 3 4 5) (cdr x))
2 (y nil))
3 (( null x) (reverse y))
4 (push (+ (car x) 2) y)
5 )
6 (3 4 5 6 7)
7 > (mapcar #’(lambda (x) (+ x 2)) ’(1 2 3 4 5))
8 (3 4 5 6 7)
8 / 22
9. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Ordenamento
LISP provê duas primitivas para ordenação: sort e stable-sort.
1 > (sort ’(2 1 5 4 6) #’<)
2 (1 2 4 5 6)
3 > (sort ’(2 1 5 4 6) #’>)
4 (6 5 4 2 1)
O primeiro argumento para sort é uma lista, o segundo é a função de comparação. A
função de comparação não garante estabilidade.
9 / 22
10. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Ordenamento Estável
A função stable-sort é exatamento como sort, só que ela garante que dois elementos
equivalentes vão aparecer na lista ordenada exatamente na mesma ordem em que
aparecem lista original.
1 >(stable -sort ’(2 1 5 4 6) #’>)
2 (6 5 4 2 1)
3 > (stable -sort ’(2 1 5 4 6) #’<)
4 (1 2 4 5 6)
Atenção: O sort pode modificar ou apagar a lista original. Para fazer cópias use
copy-list ou copy-seq
10 / 22
11. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Copiando a Lista
1 >(setq nova (copy -list ’(1 2 3 4)))
2 (1 2 3 4)
3 ; outra forma
4 > (setq nova (copy -seq ’(1 2 3 4)))
5 (1 2 3 4)
6 > nova
7 (1 2 3 4)
11 / 22
12. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Igualdade e Identidade
Dois símbolos são eq se e somente se eles forem idênticos (identidade). Duas cópias da
mesma lista não são eq (são dois objetos diferentes) mas são equal (iguais).
1 > (eq ’a ’a)
2 T
3 > (eq ’a ’b)
4 NIL
5 > (= 3 4)
6 NIL
7 > (eq ’(a b c) ’(a b c))
8 NIL
9 > (equal ’(a b c) ’(a b c))
10 T
11 > (eql ’a ’a)
12 T
13 > (eql 3 3)
14 T
12 / 22
13. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Igualdade e Identidade
Detalhes:
• O predicado eql é equivalente a eq para símbolos e a = para números. É a
identidade que serve tanto para números como para símbolos.
• O predicado equal é equivalente eql para símbolos e números. Ele é verdadeiro
para dois conses, se e somente se, seus cars são equal e seus cdrs são equal. Ele é
verdadeiro para duas estruturas se e somente se as estruturas forem do mesmo
tipo e seus campos correspondentes forem equal.
13 / 22
14. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Exemplos de Igualdade e Identidade
Mais exemplos:
1 >(setq X ’(A B))
2 (A B)
3 > (setq Y ’(A B))
4 (A B)
5 > (equal X Y) ;X e Y são iguais
6 T
7 > (eq X Y) ;X e Y não são idênticos
8 NIL
14 / 22
15. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Append
A função append adiciona uma lista ou elemento à outra.
1 >(append ’(1 2 3) ’(4 5 6))
2 (1 2 3 4 5 6)
15 / 22
16. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Reverse
Reverte os elementos de uma lista.
1 > (reverse ’(1 2 3))
2 (3 2 1)
16 / 22
17. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
member
Verifica se um elemento é menbro de uma lista.
1 > (member ’a ’(b d a c))
2 (A C)
3 > (member ’e ’(b d a c))
4 NIL
17 / 22
18. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
find
Encontra um elemento ou uma sublista em uma lista. A sua sintaxe é
(find item lista :key funcao :test predicado)
• item é o elemento a encontrar
• lista é a lista onde vamos procurar o elemento
• funcao :key é uma função opcional que aplica uma transformação aos elementos
da lista antes de compará-los
• :test é um predicado opcional que especifica como comparar os elementos.
18 / 22
19. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Exemplos de find
Encontrar o número 5 na lista (1 2 3 4 5 6 7)
1 (find 5 ’(1 2 3 4 5 6 7))
2 5
Encontrar o número 5 na lista ((1 2) (3 4) (5 6) (7 8)), que é uma lista de listas.
1 > (find 5 ’((1 2) (3 4) (5 6) (7 8)) :key #’car)
2 (5 6)
Encontrar múltiplo de 5 na lista 10 20 30 40 50 60 70).
1 >(find 5 ’(10 20 30 40 50 60 70) :test #’= :key #’(lambda (x) (/
x 10)))
2 50
19 / 22
20. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
subsetp
Verificação de subconjunto.
1 >(subsetp ’(a b) ’(a d e))
2 NIL
3 > (subsetp ’(a d) ’(a d e))
4 T
20 / 22
21. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
union intersection difference
União,interseção e diferença de conjuntos.
1 >(union ’(a) ’(b))
2 (A B)
3 >(intersection ’(a b c) ’(b))
4 (B)
5 > (set -difference ’(a b) ’(a))
6 (B)
Subsetp, intersection, union, e set-difference todos assumem que cada argumento não
contém elementos duplicados. Eles também podem todos tomar um argumento :test.
Por default, todos usam eql.
21 / 22
22. Elementos Intrínsecos de Programação Funcional Ordenamento Igualdade e Identidade Funções para listas
Exercícios
1. Escreva uma função que leia do usuário uma lista de produtos e seus respectivos
preços, colocando-os em uma lista organizada por pares produto-preço. A entrada
de dados é finalizada digitando-se a palavra ‘fim ao invés de um nome de produto.
Utilize o comando loop para implementar o laço de leitura e defina uma variável
global onde a lista ficará armazenada ao fim da leitura.
2. Escreva uma função ou conjunto de funções, que, através de um menu de opções,
realizem as seguintes tarefas: a) Pesquisar preço de um produto em lista de preços
e produtos. b) Mostrar em ordem alfabética toda a lista de produtos disponíveis
com os respectivos preços, formatada na tela. c) Fazer compras: Um ambiente
onde o usuário pode entrar com nomes de produtos e quantidades que deseja
comprar.
22 / 22