Prologue: liste des numéros de
Comment puis-je générer une liste de nombres de 1 à N, où N >= 0?
Prédicat: les nombres(N, L).
?- numbers(5,X).
X = [1, 2, 3, 4, 5].
?- numbers(0,X).
X = [].
- Est-ce devoirs? Qu'avez-vous essayé jusqu'à présent?
- Chaque fois que les listes sont impliqués, vous devez diviser le problème dans un cas de base et inductive cas. Pouvez-vous faire?
InformationsquelleAutor James | 2011-09-15
Vous devez vous connecter pour publier un commentaire.
Utiliser le haut -
numlist/3
:En SWI-Prolog vous pouvez utiliser
listing(numlist)
de voir comment il a été mis en œuvre.Noter que
numlist/3
ne sera jamais de générer une liste vide. Si vous voulez, alors vous avez besoin d'écrire un wrapper simple que les cartes de l'échec d'une liste vide.Vous pouvez utiliser
between
pour générer des entiers compris entre les points d'extrémité et puisfindall
pour recueillir ensemble. Essayez ce prédicat -Si vous donnez à Compter quelque chose de <=0, entre échoue et ce prédicat va générer la liste vide.