Il est d’usage que les langages Lisp (et d’autres, comme Ruby) offrent un type de données numériques nommé bignum ; les nombres de ce type peuvent avoir une taille arbitraire, c’est-à-dire que leur nombre de chiffres n’est limité que par l’espace mémoire disponible. Les calculs effectués sur de tels nombres seront bien plus lents qu’avec les types qui correspondent aux dispositifs natifs de l’ordinateur, mais pour certaines applications numériques cela peut être utile. Bigloo offre un type Bignum limité aux nombres entiers.
Avec Bigloo un nombre de type bignum doit être créé explicitement en écrivant ses chiffres dans une chaîne de caractères qui sera convertie en nombre par la procédure string->bignum
:
Il est possible d’utiliser la possibilité procurée par Bigloo de créer des variables avec un type explicite, c’est-à-dire une annotation accolée au nom de la variable qui permettra au compilateur de produire un programme plus efficace (cf. pour des explications plus complètes le manuel Bigloo) :
Voici par exemple un programme de factorielle qui permet d’obtenir le résultat voulu pour d’assez grands nombres :
Le même programme, prêt à être compilé :
Compilation et exécution :