hi marvin,
doch das geht mit mapcar
bsp. 1
------
alle (as10 xP yP) sind in EINER liste gespeichert, also '((as10 xP1 yP1)(as10 xP2 yP2)(as10 xP3 yP3))
hier kommst du nun mit (mapcar '(lambda (elem)... heran, aber...
diese liste besteht aus 3 werten -->'(as10 xP1 yP1) , deine aufaddierungs-liste -->'(4.3453 6.8905) hat nur zwei werte. und der erste wert
soll ja nicht verändert werden (is' ja der assoc 10)
mein vorschlag wäre, dem mapcar eine temp-liste zu übergeben in der der as10 wert nicht mehr existent ist und für dein gesamtergebnis einfach wieder neu hinzufügt wird.
bsp. 2
------
es gibt nur eine liste mit eben den car, cadr sowie caddr werten. hier braucht du IMHO kein lambda. es langt ein mapcar !
aber der car-wert soll ja nicht verändert werden ! auch hier würde ich einfach den as10 wert neu hinzufügen.
und hier ein paar code-bsp...
(mapcar '+ '(4.3453 6.8905) '(10 1.0 2.0)))
==> '(14.3453 7.8905)
du siehst, nur die ersten list-elemente werden bearbeitet. der y-wert ist weg
(mapcar '+ '(4.3453 6.8905) (cdr '(10 1.0 2.0)))
==> '(5.3453 8.8905)
ich übergebe mapcar nur die liste ab dem 2. wert (cdr). x und y werden nun gesetzt. jedoch der car wert ist nicht da.
(cons 10 (mapcar '+ '(4.3453 6.8905) (cdr '(10 1.0 2.0))))
==> '(10 5.3453 8.8905)
ja und so wäre mein vorschlag. einfach mit cons den as10 vorsetzen.
und für eine liste mit listwerten erreicht du das dann eben mit (mapcar '(lambda (elem)....
wobei dann deine temp-liste mit (cdr elem) erzeugt wird...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP