www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Algorithmen und Datenstrukturen" - Zugriff auf Listen in Scheme
Zugriff auf Listen in Scheme < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Zugriff auf Listen in Scheme: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:12 Do 04.11.2010
Autor: Random

Hallo Leute,

hat jemand eine Ahnung wie ich in Scheme auf Listen zugreife?
Habe folgende Situation:

(define-struct team (name group score))

(define some-teams
  (list
   (make-team "Germany" 1 4)
   (make-team "Netherlands" 1 3)
   (make-team "Japan" 1 2)
   (make-team "France" 2 1)
   (make-team "Italy" 2 5)
   (make-team "Spain" 2 0)))

Wie kann ich auf einen Speziellen Platz in der Liste zugreifen. Z.B. will ich die zwei werte haben, die hinter France stehen.

        
Bezug
Zugriff auf Listen in Scheme: Antwort
Status: (Antwort) fertig Status 
Datum: 19:05 Fr 05.11.2010
Autor: rainerS

Hallo!

> Hallo Leute,
>
> hat jemand eine Ahnung wie ich in Scheme auf Listen
> zugreife?
>  Habe folgende Situation:
>  
> (define-struct team (name group score))
>  
> (define some-teams
>    (list
>     (make-team "Germany" 1 4)
>     (make-team "Netherlands" 1 3)
>     (make-team "Japan" 1 2)
>     (make-team "France" 2 1)
>     (make-team "Italy" 2 5)
>     (make-team "Spain" 2 0)))
>  
> Wie kann ich auf einen Speziellen Platz in der Liste
> zugreifen. Z.B. will ich die zwei werte haben, die hinter
> France stehen.

Eine Liste ist eine spezielle Form von Paar. Dabei ist die erste Hälfte des Paares das erste Listenelement, die zweite Hälfte der Rest der Liste. Bei einer Liste mit nur einem Element ist die zweite Hälfte des Paares die leere Liste () .

Auf das erste Element eines Paares greifst du mit car zu, auf das zweite Element (den Rest der Liste) mit cdr.

Daher bekommst du das erste Element mit

(car some-teams)

das zweite mit

(car (cdr some-teams))

das dritte mit

(car (cdr (cdr some-teams)))

usw.

Da das mühsam zu schreiben ist, gibt es für bis zu vier Kombinationen von car und cdr Abkürzungen:

(car (cdr some-teams))  --> (cadr some-teams)

(car (cdr (cdr some-teams))) --> (caddr some-teams)

(car (cdr (cdr (cdr some-teams)))) --> (cadddr some-teams)

ABER:

(car (cdr (cdr (cdr (cdr some-teams))))) --> (car (cddddr some-teams))

Viele Grüße
   Rainer

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]