Je travaille sur un langage de programmation expérimental qui a une inférence de type polymorphique globale.Code qui utilise l'inférence de type
J'ai récemment eu l'algorithme qui fonctionne assez bien pour taper correctement les bits de l'échantillon de code que je lance. Je cherche maintenant quelque chose de plus complexe qui va exercer les cas de bord. Est-ce que quelqu'un peut me pointer à une source de fragments de code vraiment gnarly et horribles que je peux utiliser pour cela? Je suis sûr que le monde de la programmation fonctionnelle a beaucoup. Je suis particulièrement à la recherche d'exemples qui font du mal avec la récursivité des fonctions, car je dois vérifier que l'extension de la fonction se termine correctement, mais tout va bien --- j'ai besoin de construire une suite de tests. Aucune suggestion?
Mon langage est en grande partie impératif, mais tout code de style ML devrait être facile à convertir.
Fantastique --- merci! (Bien que je puisse avoir besoin de remettre mon insigne «tumbleweed».) Mon langage est procédural plutôt que fonctionnel, et utilise une sorte de CPA mutée plutôt que Hindley-Milner, mais je peux adapter la plupart d'entre eux. Si je peux implémenter votre carte 'et rev' en utilisant les fonctions de voiture, de cdr et de contrepoids dans la langue et que ça marche, je serai heureux. Hélas, je n'ai pas de fonctions d'ordre supérieur, mais je vais essayer de trouver un moyen de les faire fonctionner. –
bien, en termes de voiture et cdr, la carte est simplement 'fun map 'f l = si l = [] alors [] cons cons (f (voiture l), carte' f (cdr l))'. rev 'est' fun rev 'l = si l = [] alors [] else ajoute (rev' (cdr l), contre (car l, nil)) ', je suppose. La plupart du temps, je voudrais juste me concentrer sur la génération d'exemples que le vérificateur de type devrait rejeter! – Gian