Forcément quant tu débutes, il y a des trucs à apprendre, mais je trouve au contraire le langage relativement compréhensible pour quelqu'un qui ne le connais pas. Sans connaître les détails du langage, j'arrive quand même à me faire une bonne idée de ce que ce code fait.
Je trouve assez facile de déduire que :
- fun est un diminutif pour function
- suspend me semble être une sorte de async (ça doit être facile a Googler)
- inline et crossinline, sont des indications pour l'inlining
- .()-> à l'air d’être la syntaxe pour indiquer le type d'une closure
- reified doit comme son nom l'indique faire que le paramètre générique est réifié
Rien à voir avec du Haskell, Lisp ou du Prolog qui peuvent donner de sérieuses migraines si on est pas préparé.