Conteúdo • Construa seu Próprio Lisp

Capítulo 1 • Introdução


  • Sobre
  • Para quem é este livro
  • Por que aprender C
  • Como aprender C
  • Por que construir um Lisp
  • Seu próprio Lisp

Capítulo 2 • Instalação


  • Configuração
  • Editor de texto
  • Compilador
  • Hello World
  • Compilação
  • Erros
  • Documentação

Capítulo 3 • O Básico


  • Visão Geral
  • Programas
  • Variáveis
  • Declarações de funções
  • Declarações de estruturas
  • Apontadores (pointers ou ponteiros)
  • Strings
  • Condicionais
  • Laços

Capítulo 4 • Um Prompt Interativo


  • Leia, Avalie, Imprima
  • Um prompt interativo
  • Compilação
  • Editando a entrada
  • O pré-processsador C

Capítulo 5 • Linguagens


  • O que é uma linguagem de programação?
  • Parser Combinators
  • Codificando gramáticas
  • Gramáticas naturais

Capítulo 6 • Análise Sintática


  • Notação Polonesa
  • Expressões Regulares
  • Instalando mpc
  • Gramática para notação polonesa
  • Analisando a entrada

Capítulo 7 • Avaliação


  • Árvores
  • Recursão
  • Avaliação
  • Impressão

Capítulo 8 • Tratamento de Erros


  • Crashes
  • Valor Lisp
  • Enumerações
  • Funções de valor Lisp
  • Avaliando erros
  • Encanamento

Capítulo 9 • S-Expressions (expressões simbólicas)


  • Listas e Lisps
  • Apontadores
  • O Stack & O Heap
  • Parsing Expressions
  • Estrutura da Expressão
  • Construtores & Destrutores
  • Lendo Expressões
  • Imprimindo Expressões
  • Avaliando Expressões

Capítulo 10 • Q-Expressions (expressões citadas)


  • Adicionando Recursos
  • Quoted Expressions
  • Lendo Q-Expressions
  • Funções Builtins
  • Primeira Tentativa
  • Macros
  • Busca de Builtins

Capítulo 11 • Variáveis


  • Imutabilidade
  • Apontador para função
  • Tipos Cíclicos
  • Tipo Função
  • Ambiente
  • Avaliação de Variáveis
  • Builtins
  • Função Define
  • Comunicando erros

Capítulo 12 • Funções


  • O que é uma Função?
  • Tipo Função
  • Função Lambda
  • Ambiente Pai
  • Chamando Funções
  • Argumentos Variáveis
  • Funções Interessantes

Capítulo 13 • Condicionais


  • Fazendo você mesmo
  • Ordenação
  • Igualdade
  • Função If
  • Funções recursivas

Capítulo 14 • Strings


  • Bibliotecas
  • Tipo String
  • Lendo Strings
  • Comentários
  • Função Load
  • Argumentos da Linha de Comando
  • Função Print
  • Função Error
  • Finalizando

Capítulo 15 • Biblioteca Padrão


  • Minimalismo
  • Átomos
  • Blocos de Construção
  • Operadores Lógicos
  • Funções Variadas
  • Funções de Lista
  • Funções Condicionais
  • Fibonacci

Capítulo 16 • Projetos Extras


  • Apenas o Começo
  • Tipos Nativos
  • Tipos Definidos pelo Usuário
  • Literal para Listas
  • Interação com Sistema Operacional
  • Macros
  • Tabela Hash de Variáveis
  • Alocação com Pool
  • Coleta de Lixo
  • Otimização de Chamada em Cauda (Tail Call Optimisation)
  • Escopo Léxico
  • Tipagem Estática
  • Conclusão

Créditos


Perguntas Frequentes


Código-fonte


Github


Texto Original (Inglês)


Tradução (Chinês)