Estrutura e Interpretação de Programas de Computadores Construindo Abstrações com Procedimentos 1.1. Os Elementos da Programação