Lisp, Verständnisproblem

Diskutiere Lisp, Verständnisproblem im Ruby, php, Perl, Python ... Forum im Bereich Programmieren unter Linux/Unix; hallo, ich arbeite gerade den online LISP Kurs der UNI Trier durch. Die Aufgabe lautet 4. Definiere eine Funktion NREST, die zwei...

  1. FM41

    FM41 Jungspund

    Dabei seit:
    27.02.2008
    Beiträge:
    15
    Zustimmungen:
    0
    hallo,

    ich arbeite gerade den online LISP Kurs der UNI Trier durch.

    Die Aufgabe lautet
    und die Lösung
    Code:
    (DEFUN NREST (ITEM LIST)
        (1- (LENGTH (MEMBER ITEM LIST))))
    
    Bis zu dem Length bin ich gekommen, aber warum das 1- ? Ich habe nirgendwo eine Erklärung dafür gefunden.

    besten Dank, gruß
    Felix
     
  2. nyx

    nyx Grünschnabel

    Dabei seit:
    09.02.2007
    Beiträge:
    9
    Zustimmungen:
    0
    Wenn das Element nicht in der Liste ist, ist der Wert von (length (member item list)) 0. (1- 0) <=> (- 0 1) => -1.

    Wenn das Element in der Liste ist, ist der Wert von (member item list) der Teil der Liste ab 'item' (inklusive).
    Beispiel:
    Code:
    (member 3 (list 1 2 3 4 5 6))
    > (3 4 5 6)
    (length (list 3 4 5 6))
    > 4
    Hier stehen ja nach der Zahl 3 noch drei Elemente in der Liste, also muss man vom Rueckgabewert von (length (member list item)) 1 subtrahieren, weil man sonst das gesuchte Element (item) selbst mitzaehlen wuerde.

    Ich hoffe, das ist jetzt ein bisschen klarer :)
     
  3. FM41

    FM41 Jungspund

    Dabei seit:
    27.02.2008
    Beiträge:
    15
    Zustimmungen:
    0
    hallo nyx, vielen Dank nun habe ich es verstanden! Das Ausschlaggebende war (1 - 0) <=> (- 0 1) , ich wusste nicht das dies Äquivalent ist.

    vielen Dank, gruß
    Felix
     
  4. nyx

    nyx Grünschnabel

    Dabei seit:
    09.02.2007
    Beiträge:
    9
    Zustimmungen:
    0
    Falls du die Seite noch nicht kennst, auf Common Lisp Hyper Spec kannst du solche Sachen nachschauen, ist ganz nuetzlich.
     
  5. FM41

    FM41 Jungspund

    Dabei seit:
    27.02.2008
    Beiträge:
    15
    Zustimmungen:
    0
    danke für den Link das scheint mir wirklich sehr hilfreich. 1- und 1+ sind quasi wie i++ oder i-- . Besten dank!

    gruß
    Felix
     
  6. Lesco

    Lesco segmentation fault

    Dabei seit:
    18.12.2005
    Beiträge:
    67
    Zustimmungen:
    0
    Ort:
    Hessen
    Ich weiß der Thread ist schon fast einen Monat alt und das Problem schon gelöst, doch die Aussage will ich dennoch ungern so stehen lassen: 1+ und 1- unterscheiden sich von i++ und i-- darin, dass die Variable nicht verändert wird. i++ verändert die Variable, 1+ tut dies nicht:
    Code:
    > (setf a 3)
    3
    > (1+ a)
    4
    > a
    3
    
    Die Lisp-Äquivalente zu i++/i-- wären (setf i (1+/- i)) oder (incf/decf i).
     
Thema:

Lisp, Verständnisproblem

Die Seite wird geladen...

Lisp, Verständnisproblem - Ähnliche Themen

  1. Verständnisproblem Samba / LDAP

    Verständnisproblem Samba / LDAP: Hallo zusammen! Ich habe unter Ubuntu 16.04 einen LDAP und Samba Server aufgesetzt. Diese scheinen auch ordnungsgemäß zu funktionieren, sodaß ich...
  2. grep verständnisproblem

    grep verständnisproblem: Hallo ich hatte ja lange keine anfängerfragen mehr :P Deswegen hier mal eine zu grep: Ich habe eine Textdatei: Hamburg Aschaffenburg...
  3. Verständnisproblem fseek und fgetpos

    Verständnisproblem fseek und fgetpos: Moin, ich würde gerne wissen wie man ANSI C gerecht in einer Datei navigiert. In meinem Buch "Linux/Unix Systemprogrammierung" von Helmut Herold...
  4. Verständnisproblem mit array in bash

    Verständnisproblem mit array in bash: Hi zusammen für jedes der Elemente in meinem Skript möchte ich eine Aktion starten und bei Erfolg das Element aus dem Array löschen. Das...
  5. Unix Grundlangen Verständnisproblem

    Unix Grundlangen Verständnisproblem: Einen schönen guten Abend Forum! Hintergrundinformation: Ein Perlscript listet mir den Inhalt eines Verzeichnis in eine Datei. Diese Einträge,...