Bergervei/Prozeduren mit Zeichenketten

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Scheme</language>
== Mein Wunschkennzeichen ==

Viele Autofahrer legen goßen Wert auf ein ganz individuelles polizeiliches Kennzeichen an ihrem Fahrzeug. Häufig soll es die Anfangsbuchstaben des Vor- und Nachnamens sowie Geburtstag und Geburtsmonat beinhalten.<br />

Schreiben Sie eine Prozedur, die eine Liste mit den persönlichen Daten entgegen nimmt und das gewünschte Kennzeichen als Zeichenkette zurückgibt.

''Beispiel:''
 
 > (kennzeichen '(Romy Berger "14.02.1988"))
 --> "GR - RB 142"

<code id="506471cf12ced">
(define benutzername
  (lambda (vorname nachname)
    (string-append (string (string-ref vorname 0)) nachname)))

(define string-first
  (lambda (zk)
    (string-ref zk 0)))

(define string-butfirst
  (lambda (zk)
    (substring zk 1)))

(define string-last
  (lambda (zk)
   (string-ref zk (- (string-length zk) 1))))

(define string-butlast
  (lambda (zk)
    (list->string (reverse (cdr (reverse (string->list zk)))))))

(define kennzeichen
  (lambda (vorname nachname datum)
    (string-append "ZI - "
                   (string (char-upcase (string-first vorname)))
                   (string (char-upcase (string-first nachname)))
                   " "
                   (string (string-first datum))
                   (string (string-first (string-butfirst datum)))
                   (string (string-last (string-butlast datum)))
                   (string (string-last datum)))))
</code>

<run id="506471cf12d59">
(kennzeichen '(Romy Berger "14.02.1988"))
</run>