ProgramaçãoFuncional: NovosHorizontespara a Expansão da ConsciênciaAndrei de Araújo Formiga@andreiformiga
Escolas de MagiaAbjuration
Transmutation
Conjuration
Divination
Enchantment
Evocation
Illusion
NecromancyPorque?Novospontos de vistaNovasformas de fazermagia
Escolas de ProgramaçãoProgramaçãoImperativa
Máquinas de TuringEscolas de ProgramaçãoProgramaçãoFuncional
Lambda-cálculo
Sistemas de reescritaProgramaçãoImperativaEfeitoscolateraissãovitais
Computação = alteraçõesno estado da memóriaEfeitos = ProblemasVariáveisglobais
“Global variables are evil”
Aliasing
Mais de umareferênciapara o mesmoobjeto
Problemático se o objetoémutávelEfeitos = DificuldadesOtimizações
Análisesestáticas
Segurança
Corretude
Compartilhamento e ConcorrênciaSemEfeitos?O mundomudaporcausa dos efeitos?
Solução: ControlarEfeitosOO: Encapsulamento
Passagem de Mensagens
Estado local nãocompartilhadoProgramaçãoFuncionalFunçõescomoconceitobásico
Cidadãos de 1aclasse
Efeitoscolateraiscontrolados
Diferentesníveis de controleCaracterísticasFunções de altaordem
Inferência de tipos
Pattern matching
Tipos de Dados AlgébricosCaracterísticasPolimorfismo(genéricos)
Avaliaçãopreguiçosa (lazy)
Continuações
Mônadas e Sistemas de EfeitosPesquisae InovaçãoTradição de Pesquisaemlinguagensfuncionais
Muitasinovaçõessurgiram 1onaslinguagensfuncionais
Fama de paradigma“acadêmico”Tiposfantasmas, mônadas, catamorfismos, anamorfismos, GADTs…
LinguagensScheme

Programação Funcional: Novos Horizontes para a Expansão da Consciência