Wie nehme ich eine Scheibe einer Liste (Teilliste) in Schema?
Gegeben eine Liste, wie würde ich wählen Sie eine neue Liste, mit einer Scheibe die original-Liste (offset und die Anzahl der Elemente) ?
EDIT:
Gute Vorschläge so weit. Gibt es nicht etwas angegeben in einem der SRFI? Dies scheint eine sehr grundlegende Sache, also ich bin überrascht, dass ich brauche, um es zu implementieren, die im user-land.
InformationsquelleAutor der Frage troelskn | 2008-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem folgenden code wird das tun, was Sie wollen:
Beispiel:
InformationsquelleAutor der Antwort dsm
Seltsamerweise
slice
ist nicht mit SRFI-1aber man kann es kürzer mit SRFI-1und
drop
:Dachte ich, dass eine der Erweiterungen, die ich verwendet habe, die mit dem Schema, wie die PLT-Scheme-Bibliothek oder Schwindel, diese eingebaut, aber es scheint nicht der Fall zu sein. Es ist nicht einmal in der neuen R6RS Bibliotheken.
InformationsquelleAutor der Antwort Nathan Shively-Sanders
Können Sie versuchen, diese Funktion:
Den start parameter ist der Versatz. Die Ende parameter kann leicht gedreht werden, in der die Anzahl der Elemente zu schnappen, indem Sie einfach start + Anzahl-der-Elemente.
Ein kleiner bonus ist, dass subseq funktioniert auf allen Sequenzen, umfasst dies nicht nur Listen, sondern auch Strings und Vektoren.
Edit: Es scheint, dass nicht alle lisp-Implementierungen haben subseq, aber es wird den job zu erledigen just fine wenn Sie es haben.
InformationsquelleAutor der Antwort Josh Gagnon
InformationsquelleAutor der Antwort Matthias Benkard
Hier ist meine Umsetzung
slice
verwendet einen richtigen Schwanz nennenInformationsquelleAutor der Antwort user633183
Probieren Sie etwas wie dieses:
InformationsquelleAutor der Antwort Martin Cote