[Perl] APL → Raku : un équivalent de "code" et "decode" ?

Jean ponder.stibbons at orange.fr
Lun 23 Mar 19:15:04 CET 2020


Ainsi que je l'ai exposé lors des Journées Perl 2018
il est possible de trouver dans Raku des équivalents à
certains opérateurs APL. En ce moment, je cherche s'il existe
des équivalents aux opérateurs "code" ( ⊤ ) et "decode" ( ⊥ ).

Référence (en recollant les trois URL) :

https://github.com/jforget/Perl6-Alpha-As-des-As-Zero/blob/master/Description/description-fr.pod#user-content-indices-négatifs

https://github.com/jforget/Perl6-Alpha-As-des-As-Zero/blob/master/Description/description-fr.pod#user-content-opérateurs-unicode

https://github.com/jforget/Perl6-Alpha-As-des-As-Zero/blob/master/Description/description-fr.pod#user-content-un-autre-héritage-dapl

Premier exemple : combien font 1 million de secondes en semaines, jours,
heures, minutes et secondes ?

     52 7 24 60 60 ⊤ 1000000
1 4 13 46 40

Réponse, cela fait 1 semaine, 4 jour, 13 heures, 46 minutes
et 40 secondes. Vérification :

     52 7 24 60 60 ⊥ 1 4 13 46 40
1000000

Deuxième exemple. Aujourd'hui, la date en compte long maya est
13.0.7.6.9. Combien de jours se sont-ils écoulés depuis la date
origine du calendrier maya ?

     20 20 20 18 20 ⊥ 13 0 7 6 9
1874649

Vérification :

     20 20 20 18 20 ⊤ 1874649
13 0 7 6 9

On pourrait avoir d'autres exemples avec les unités de mesure 
anglo-saxonnes.

Savez-vous s'il existe un équivalent aux fonctions "code" et "encode"
d'APL ? Vous avez bien compris que je ne suis pas intéressé par les méthodes
de la classe DateTime ou du rôle Dateish. D'autre part, pour la fonction
"decode", il est possible d'écrire une formule avec des parenthèses, des 
plus
et des multiplier, donc je ne suis pas bloqué, mais c'est une question
de style. Pareil pour la fonction "code", on peut faire cela avec une 
boucle,
mais si je pouvais faire cela en une seule instruction avec du style...

Merci pour vos lumières

Jean






Plus d'informations sur la liste de diffusion Perl