Zitat:
Original erstellt von benwisch:
will wieder mal alte codes von mir auf meinen jetztigen wissenstand bringen...
Na, da will mal nicht daneben stehen ...
Zitat:
Original erstellt von benwisch:
[..]ich habe jetzt zwei tage lang versucht zu kürzen, was in meinem "können" liegt und mein gefühl sagt mir...hier gibt es eine elegantere lösung!würde mich über tipps und konstruktive kritik freuen.
Sollst du habe:
Die Problem-Stellung ist kein Fall für'ne Schleife, das kannst du daran erkennen, dass du die Liste über die du mit MAPCAR iterierst ja doch wieder innerhalb des Schleifen-Körpers als Ganzes abfragst. Also nix mit MAPCAR.
(apply'(lambda(a b c)..)<irgend-eine-Liste> )
ist Klasse, wenn's nötig ist. Das ist's aber nicht, wenn du alternativ auch gleich
((lambda(a b c)..)<irgend-eine-Liste> )
schreiben kannst - und so scheints mir hier.
Edit: Schwachsinn! - Möchte mal wissen, was mich da geritten hat - hier passt's natürlich ganz besonders gut!
Dann hab ich auch noch ein wenig in den Formeln 'rumgekürzt und raus kommt das:
Code:
(setq *valuelist-duab*
(apply'(lambda (a b c / viertel-a-quadrat-pi)
(setq viertel-a-quadrat-pi (* 0.25 a a pi))
(cond
((= 0 b c) (list a b c)) ;** verändert sich nix
((list ;** ELSE
(if (= 0 a)
(* 2 (sqrt (/ (* c b) pi))) ;** Ist egal, ob <b> oder <c> Null sind
a ;** ELSE
)
(if (= 0 b)
(/ viertel-a-quadrat-pi c)
b ;** ELSE:
)
(if (= 0 c)
(/ viertel-a-quadrat-pi b)
c ;** ELSE
)
) ; end LIST
) ; end ELSE-Altenative
)
) ;_ end lambda
*valuelist-duab*
)
)
viertel-a-quadrat-pi hab' ich benutzt, weil' die Lesbarkeit steigert - effektiv ist's eigendlich nicht.
Hat noch jemand einen Vorschlag?
Achim Dabrunz
[Diese Nachricht wurde von Dabrunz am 27. Juni 2003 editiert.]
[Diese Nachricht wurde von Dabrunz am 27. Juni 2003 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP