Mehrere Argumente für mapcar

8

Ich bin mir sicher, dass dies eine sehr anfängliche Frage beim Lispeln ist, da ich gerade die Sprache lerne.

Ich habe eine Funktion in clisp namens count. Es zählt die Häufigkeit, mit der ein bestimmtes Atom in einer Liste angezeigt wird. Was ich gerne tun würde, ist in der Lage zu zählen mehrere Male mit verschiedenen Parametern, aber die gleiche Liste zu suchen.

Ich möchte zum Beispiel die Anzahl von 'A , 'B und 'C in der Liste hypothetisch zählen. Ich hatte gehofft, ich könnte so etwas tun:

%Vor%

Ich habe herausgefunden, dass das nicht funktioniert, weil jedes der Elemente in '(A B C) mit nur einem der Elemente in myList gepaart wird. Was ist der geeignete idiomatische Weg, um eine Funktion mit einem zusätzlichen Eingabeparameter auf jedes Element in einer Liste anzuwenden?

Zur weiteren Klärung möchte ich '(A B C) und '(A A B C C C) als Eingabe verwenden und (2 1 3) erzeugen können.

    
Alex Pritchard 11.05.2011, 05:27
quelle

1 Antwort

13

Um die Funktion count wiederholt mit jedem Element aus einer Liste (A B C) aufzurufen, jedes Mal, wenn übereinstimmende Elemente dieselbe Sequenz mylist :

zählen %Vor%     
Terje Norderhaug 11.05.2011, 05:31
quelle