¿Por qué?
Porque el paradigma estructura los problemas de esta manera, usa funciones para operar sobre estructuras de datos. Esto hace que el modelado sea más declarativo. En este contexto, los datos pasan a ser Types (Los Types no son clases, son solo un nombre para un conjunto de cosas).
Así pues las funciones son operaciones qtoman como inputs y retornan como outputs types. Un conjunto de funciones se suelen empaquetar en módulo y funcionan como un servicio