Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Autolisp Kochbuch - Aufgabe Nr. 31

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Autolisp Kochbuch - Aufgabe Nr. 31 (431 mal gelesen)
autocart
Mitglied
Technischer Redakteur


Sehen Sie sich das Profil von autocart an!   Senden Sie eine Private Message an autocart  Schreiben Sie einen Gästebucheintrag für autocart

Beiträge: 695
Registriert: 08.09.2003

erstellt am: 09. Okt. 2008 00:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo!
Ich möchte eine Bemerkung zu der Übungs-Aufgabe 31 abgeben, weil mich diese Anfangs etwas verwirrt hatte.

Zitat (Frage + Lösung):

Zitat:
31. Welchen Wert hat die Variable a zum Schluss, wenn Sie folgendes nacheinander
eingeben:
(setq a 'b)
(setq b 'c)
(set a 1)
(setq b 2)

(setq a 'b) … (eval a) -> nil … B wurde ja noch nichts zugewiesen
(setq b 'c) … (eval a) -> C
(set a 1) … (eval a) -> 1 … (eval b) -> 1
(setq b 2) … (eval a) -> 2 …(eval b) -> 2
Interessant, nicht?


Entweder ist die Fragestellung nach dem "Wert" der Variablen a hier falsch, oder die Funktion (eval ...) wird in der Lösung falsch verwendet. Wie auf Seite 77 (zum Glück) richtig erklärt wird, bewirkt der Ausdruck (eval a) nämlich eine DOPPELTE Evaluierung von a. Mit (eval a) wird eben NICHT der tatsächliche "Wert" von a ausgegeben. Der "Wert" von a nach (setq a 'b) ist nicht nil sondern B und das bleibt auch so bis zum Schluss dieses Beispiels. (Mit !a in der Befehlszeile kann man den echten "Wert" von a überprüfen, und da kommt dann auch B raus.)

Dies mag vielleicht für den einen oder anderen Verteidiger des Kochbuches eine unwichtige Kleinigkeit sein, aber es kann für einen Anfänger (für den das Buch ja geschrieben ist), sehr verwirrend und frustrierend sein, wenn nicht jede "Kleinigkeit" genau und korrekt ist.

------------------
Gruß, Stephan
www.stbartl.at

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz