Explore l'abstraction contextuelle dans la construction de logiciels, en discutant comment les fonctions et les cours peuvent être écrits sans connaissance détaillée du contexte dans lequel ils seront utilisés.
Couvre le passage de contexte par rapport aux classes de type, les contextes d'exécution, l'inviolabilité et l'importance de la spécificité dans Scala.
Explique le processus de résolution des contraintes de type en utilisant l'algorithme d'unification et la généralisation de l'inférence de type flexible.
Couvre les concepts d'algèbre abstraite en utilisant des classes de type dans Scala, y compris la définition des monoïdes, la généralisation des fonctions de réduction et les lois de classe de type.
Explore le sous-typage, les génériques et la variance dans Scala, en soulignant l'importance de descriptions de types précises et en démontrant des applications pratiques des expressions.
Explore les principes de programmation réactive, en mettant l'accent sur les fonctions et l'appariement des modèles dans Scala, y compris la représentation JSON et les fonctions partielles.
Couvre les types polymorphes dans Amy, y compris les règles Hindley-Milner, les schémas de type, l'instanciation et la gestion des variables de type dans les fonctions.
Explore les types de fonctions implicites et leur application dans un système de gestion de séance de cours, en discutant du compromis entre les types et les termes dans les paramètres implicites.
Couvre l'utilisation d'attributs et de méthodes de classe statique en C++ pour éviter les variables globales et met l'accent sur les meilleures pratiques pour la mise en œuvre de méthodes statiques.
Couvre la mise en œuvre et la vérification de l'encodeur et du décodeur pour les codes sans préfixe, y compris les classes et les types, les lemmas sur les arbres, et le théorème principal.