Lorsque j'apprends un nouveau langage, j'ai l'habitude de "traduire la version en Pascal de l'interpréteur LISP" de Kamin. Ce programme utilise 90% des particularités d'un langage.
Mon problème est comment réussir du Polymorphisme en Go. C'est un truc d'importance majeur, car cela permet de se débarrasser de beaucoup de branchement logique.
la portion de code qui me cause des ennuis est la suivante*:EXPTYPE sont 3 types de structure qui représente 3 d'atomes dans le langage LISP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 EXPTYPE = (VALEXP,VAREXP,APEXP); EXPREC = record case etype: EXPTYPE of VALEXP: (num: NUMBER); VAREXP: (varble: NAME); APEXP: (optr: NAME; args: EXPLIST) end;
NUMBER: structure avec un nom de type et un nombre.
VAREXP: structure avec un nom de type et un nom de variable.
APEXP: structure avec un de type, une référence à une variable et une structure pour la valeur de la variable
Et les EXPTYPEs servent à fabriquer des listes.
Partager