Il mio background proveniva da linguaggi imperativi, principalmente C, C ++ e Python. Ho raccolto Scala, Erlang e un po 'di Haskell qualche anno dopo e da allora sono diventato molto interessato alla programmazione funzionale e ai formalismi alla base.
Sono anche interessato alla programmazione concorrente e distribuita e ho esaminato i formalismi dietro a ciò, in particolare quelli che hanno visto almeno un po 'della "luce del giorno" (ad esempio l'uso del mondo reale o almeno un'implementazione da qualche parte). Finora conosco i processi sequenziali comunicanti, il modello di attore, l'algebra dei processi comunicanti e il calcolo dei sistemi comunicanti. Tra questi, so che il modello Actor si è realizzato in lingue come Erlang, Scala e Haskell.
Mi chiedo se ci sono basi che dovrei imparare e mettere in pratica prima di affrontare questi campi, se ce n'è una "classica" che dovrei studiare per prima, e se ce ne sono altre popolari che potrei aver perso?