Couvre les concepts et la mise en œuvre de la programmation fonctionnelle dans Scala, mettant l'accent sur les fonctions, les données immuables et l'abstraction des données.
Couvre le calcul lambda simplement typé, en se concentrant sur sa syntaxe, sa sémantique et ses propriétés de système de type telles que le progrès et la préservation.
Couvre la mise en œuvre de fonctions récursives à l'aide de substitutions et d'environnements, montrant la capacité d'exécuter des fonctions calculables.
Explore des sujets avancés d'ingénierie logicielle et de traitement du signal en utilisant des listes paresseuses pour construire un synthétiseur sonore à partir de zéro.
Couvre la modélisation des instructions de contrôle avec des fonctions dans Scala, y compris les boucles while, les boucles de répétition et la traduction for-loops.
Couvre la sémantique des langages de programmation, en se concentrant sur le langage Add et le rôle des règles de réécriture et des machines CK dans la compréhension du sens.
S'intéresse à la vérification de type, à la reconstruction, aux équations, à l'unification, au système Hindley/Milner, au polymorphisme et aux principaux types.
Explore les cartes, les opérateurs de type, l'équivalence, les types de première classe, System Fw, Coq, et les défis de la vérification de type dans les langages de programmation.
Couvre la sémantique opérationnelle et les stratégies d'évaluation dans le calcul lambda, y compris redex, les stratégies d'évaluation alternatives et les booléens de l'Église.