Wie kann ich eine Liste erstellen mit zahlen von 1 bis N, wobei N >= 0?
Prädikat: zahlen(N, L).
?- numbers(5,X).
X = [1, 2, 3, 4, 5].
?- numbers(0,X).
X = [].
Ist dieses Hausaufgaben? Was haben Sie bisher ausprobiert?
Wenn Listen beteiligt sind, müssen Sie teilen das problem in ein base-case-und einem induktiven Fall. Kann man das machen?
InformationsquelleAutor James | 2011-09-15
Verwenden Sie die integrierte
numlist/3
:In SWI-Prolog können Sie
listing(numlist)
zu sehen, wie es umgesetzt wurde.Beachten Sie, dass
numlist/3
nie erzeugen einer leeren Liste. Wenn Sie das wollen, dann müssen Sie schreiben einen einfachen wrapper, Karten scheitern, um eine leere Liste.InformationsquelleAutor Kaarel
Können Sie
between
zum generieren von integers zwischen den Endpunkten und dannfindall
sammeln Sie zusammen. Versuchen Sie, diese Prädikat -Geben, wenn Sie Zählen Sie alles <=0, zwischen fehl-und dieses Prädikat erzeugt die leere Liste.
InformationsquelleAutor DaveEdelstein