Kiffer: gleich und selbst

bin gerade etwas zuge... , ähh, verwirrt.

x = 1
y = 1

würde man sagen, x hat den gleichen Wert wie y, oder x hat den selben Wert wie y

oder anders formuliert, existiert jede Zahl (als abstrakte Entität) nur EINMAL?

  1. Om nah hoo pez nyeetz, Kiffer!

    würde man sagen, x hat den gleichen Wert wie y, oder x hat den selben Wert wie y

    auf jeden Fall muss man schreiben "hat denselben Wert".

    oder anders formuliert, existiert jede Zahl (als abstrakte Entität) nur EINMAL?

    mMn Ja.

    Matthias

    --
    1/z ist kein Blatt Papier.

  2. bin gerade etwas zuge... , ähh, verwirrt.

    x = 1
    y = 1

    würde man sagen, x hat den gleichen Wert wie y, oder x hat den selben Wert wie y

    Weder noch! Guck mal:

      
    use strict;  
    use warnings;  
      
    local $, = $\ = "\n";  
      
    tie my $x, 'Foo';  
    tie my $y, 'Bar';  
      
    print "Native:", "x: $x", "y: $y";  
      
    $x = 1;  
    $y = 1;  
      
    print "Nach der Zuweisung:", "x: $x", "y: $y";  
      
    # Ausgabe  
    =pod  
      
    Native:  
    x: 1  
    y: 1  
    Nach der Zuweisung:  
    x: 1  
    y: 3  
      
    =cut  
    
    

    oder anders formuliert, existiert jede Zahl (als abstrakte Entität) nur EINMAL?

    In o.g. Beispiel sind $x, $y Entitäten verschiedener Klassen.
    Eine Zahl ist eine Entität einer Klasse, z.B. der Klasse "Natürliche Zahlen".

    Du hast Variablen x, y aber nicht näher bestimmt, zu welcher Klasse die gehören ;)

    Hotti

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
    1. "Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein."

      LOL, daran muss ich noch arbeiten... nur so nebenei ;)

      Lassen wir den Perlkram mal weg.

      Eine Zahl ist eine Entität einer Klasse, z.B. der Klasse "Natürliche Zahlen".

      Hmm, finde ich gar nicht schlecht. Das bringt mich zu folgendem:

      x = 1
      y = 1

      die 1 von a und die 1 von b ist jeweils (nur) eine Referenz auf die Entität 1 der Klasse "Natürliche Zahlen" (*). Wir müssen also unterscheiden zwischen Referenz und der abstrakten Größe. Erstere gibt es öfters (und damit hat x und y tatsächlich, wie suit vorher schon richtig erwähnte, (nur) gleiche Werte), allerdings denselben Referenzwert (=Meßgröße). Oder so

      (*) wobei hier anzumerken ist, dass die 1 natürlich in verschiedenen Klassen vorkommt, was eigentlich dann nicht sein dürfte. Es müsste also die Klasse "aller Zahlen" sein, und die weiteren Klassen sind davon abgeleitet. Dann würde obiges Modell auch nicht stimmen, aber zur Vereinfachung lassen wir das so mal stehen.

      1. hi,

        Lassen wir den Perlkram mal weg.

        Emphööööööhrrrung 11!11

        die 1 von a und die 1 von b ist jeweils (nur) eine Referenz auf die Entität 1 der Klasse "Natürliche Zahlen" (*). Wir müssen also unterscheiden zwischen Referenz und der abstrakten Größe.

        Jow!
        Ich liebe Referenzen ;)
        (besonders in Perl)

        Hotti

        --
        Der Schnee von heute ist morgen Schnee von gestern.
  3. Klingt ein bisschen nach Philosophiestudium?
    Warum muss ich schmunzeln, wenn ich deinen Namen im Zusammenhang mit dieser Überlegung sehe?

    1. Klingt ein bisschen nach Philosophiestudium?
      Warum muss ich schmunzeln, wenn ich deinen Namen im Zusammenhang mit dieser Überlegung sehe?

      Weil du der gleiche bist, wie ich? Übrigens, als Artgenosse sage ich dir, der große Andere ist immer dabei ;)

      1. Der gleiche was? Übrigens nicht der selbe :-)
        Ich hab mich gefragt auf was du damit raus wolltest.

  4. Hello,

    bin gerade etwas zuge... , ähh, verwirrt.

    x = 1
    y = 1

    würde man sagen, x hat den gleichen Wert wie y, oder x hat den selben Wert wie y

    oder anders formuliert, existiert jede Zahl (als abstrakte Entität) nur EINMAL?

    Wenn man davon ausgeht, dass der "Wert" als skalare Größe ungerichtet ist und nur die Länge einer Strecke kennuzeichnet, dann ist es derselbe Wert, denn er existiert nur als fiktive Messgröße. Der Wert kennzeichnet aber nicht zwingend dieselbe Strecke, sondern nur zwei gleiche.

    In der Programmierung würde man nun noch eine weitere Möglichkeit bedenken müssen. Wenn die Namen x und y auf denseleben Speicherplatz verweisen, dann kennzeichnen sie tatscählich denselben Wert, denn die in ihnen enthaltenden Adressen sind gleich.

    *ups*

    Kommst Du noch mit?

    Ich trinke heute übrigens wieder das gleiche Bier, wie gestern ;-)

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hi Tom,
      ich trinke gerade ein selbstgebrautes Bier, wunderbar :)
      Es ist aber nicht das selbe von gestern, das ist leider schon weg... verdammt, das war noch besser. Allerdings, wenn ich ein Schluck aus einem Glas Bier genommen habe, ist der nächste Schluck dann immer noch das gleiche Bier? Fehlt ja nun schon ein Schluck und mit Mund-Bakterien wurde es höchstwahrscheinlich auch schon kontaminiert. Bäähh!

      bin gerade etwas zuge... , ähh, verwirrt.

      x = 1
      y = 1

      würde man sagen, x hat den gleichen Wert wie y, oder x hat den selben Wert wie y

      oder anders formuliert, existiert jede Zahl (als abstrakte Entität) nur EINMAL?

      Wenn man davon ausgeht, dass der "Wert" als skalare Größe ungerichtet ist und nur die Länge einer Strecke kennuzeichnet, dann ist es derselbe Wert, denn er existiert nur als fiktive Messgröße. Der Wert kennzeichnet aber nicht zwingend dieselbe Strecke, sondern nur zwei gleiche.

      fiktive Meßgröße, das finde ich nicht schlecht. Kann also eine fiktive Meßgröße mehrmals existieren? In meinem einfach gestrickten Kosmos: Nein.

      In der Programmierung würde man nun noch eine weitere Möglichkeit bedenken müssen. Wenn die Namen x und y auf denseleben Speicherplatz verweisen, dann kennzeichnen sie tatscählich denselben Wert, denn die in ihnen enthaltenden Adressen sind gleich.

      => ja, genau, das ist klar. Das hatte ich mit dem JAVA-Beispiel weiter oben dann nochmals angerissen.

      *ups*

      Kommst Du noch mit?

      Ich trinke heute übrigens wieder das gleiche Bier, wie gestern ;-)

      Prost

  5. Hallo,

    x = 1
    y = 1
    würde man sagen, x hat den gleichen Wert wie y, oder x hat den selben Wert wie y
    oder anders formuliert, existiert jede Zahl (als abstrakte Entität) nur EINMAL?

    Das kommt wohl auf die Implementation drauf an ich könnte mir eine Sprache überlegen in der jede Zahl ein Objekt ist das man auch verändern kann:

    x = 1
    y = 2

    print x + y

    > 3

    redefine 1, 7

    print x + y

    > 9

    Dann kommen noch die ganzen Sachen wie .. by value, .. by reference, .. by name usw. erschwhrend dazu http://en.wikipedia.org/wiki/Evaluation_strategy

    Jeena

  6. Lieber Kiffer,

    je nach Programmiersprache ist das intern eventuell anders geregelt, aber betrachte das einmal vom Standpunkt der JavaScript-Engine aus. Dort ist grundsätzlich alles ein Objekt, bis auf gewisse "primitive" Werte, wozu wohl auch die Integer-Zahlen gehören. Zwar könnte Dir molily sicherlich genauer sagen, wie das intern funktioniert, aber meine Ausführungen, auch wenn sie vielleicht nicht immer ganz 100%ig sachlich richtig sind, sollten Dir weiterhelfen können.

    In JavaScript definiere ich in einer Funktion zwei lokale Variablen x und y, welchen ich jeweils den Integer-Wert 1 zuweise:

    function test () {  
        var x, y;  
      
        x = 1;  
        y = 1;  
      
        alert("x: "+x+" - y: "+y); // "x: 1 - y: 1"  
      
        // der erste Zweig wird immer genommen werden:  
        if (x === y) {  
            alert("x und y haben sowohl denselben Wert, als auch denselben Datentyp!");  
        } else {  
            alert("x und y haben vielleicht denselben Wert, nicht aber auch denselben Datentyp!");  
        }  
    }
    

    In JavaScript steht in der Variablen x ein Integer-Wert von 1 und in der Variablen y ebenso. Da Integer-Werte keine komplexen Objekte sind, lässt sich mit Sicherheit sagen, dass die eins in x nicht dieselbe eins wie in y ist, auch wenn der Datentyp und der Wert identisch sind. Daher kann man nur sagen "hat denselben Wert", nicht aber "ist das selbe".

    Probieren wir das einmal mit einer leicht anderen Syntax:

    var x = y = 1;

    Auch hier entsteht dasselbe Ergebnis wie oben.

    Man kann das in JS dadurch überprüfen, indem man den Wert in x verändert. Ist der Wert in y nach der Änderung in x noch immer derselbe, dann hatte y eine andere eins als x. Sollte sich in y der Wert allerdings mit verändert haben, dann hatte y tatsächlich dieselbe eins.

    Die obigen Verhältnisse bleiben sogar erhalten, wenn man das Ganze so anfängt:

    var x, y;  
      
    x = y = new Number(1);  
    x = new Number(2);  
      
    alert(y); // "1"
    

    Auch wenn man hier eine Instanz eines Number-Objektes bemüht hat, hantiert JavaScript intern nicht mit dem identischen Objekt bei x und y, sondern gibt x ein anderes Objekt als y, sodass die Änderung in x sich nicht auf y auswirkt.

    In JS und PHP (als auch in anderen Programmiersprachen) ist es oft genug, wenn man auf einen gleichen Wert prüft. Dazu benutzt man den ==-Operator. Dieser prüft nur, ob man zwei Werte als "kommt auf's Gleiche raus" prüfen kann. Hier gilt also "hat den gleichen Wert".

    Will man dagegen nicht nur auf "kommt auf's Gleiche raus", sondern auch auf den gleichen Datentyp prüfen, muss man den ===-Operator verwenden. In JS kann das bei komplexeren Objekten bedeuten, dass man von ein und demselben Objekt spricht (wenn die Änderung in der einen Variable sich auf die andere auch auswirkt), in PHP bedeutet es dagegen nur, dass sowohl Wert, als auch Datentyp identisch sind. Hier sagt man dann "hat denselben Wert".

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo Felix,
      danke dir für die Ausführungen. Aber ich hätte erwähnen sollen, dass ich das nicht auf die interne Speicherverwaltung einer Programmiersprache beziehe, sondern als abstraktes Beispiel ansehe. Du hast dir aber viel Mühe gegeben, danke dir!

      "in PHP bedeutet es dagegen nur, dass sowohl Wert, als auch Datentyp identisch sind. Hier sagt man dann "hat denselben Wert"."

      PHP kann ich nicht richtig.
      string a = "Hase";
      string b = "Hase";

      würde dann a === b true ergeben?

      Obwohl a sicherlich in einem anderen Speicherbereich liegt als b? Und damit streng genommen nicht "der selbe" Wert ist?

      In Java -soweit ich mich erinnere- ist es so:

      String a = "Hase";
      String b = "Hase";

      a == b wäre false, richtig? Weiß das wer? Weil a in einem anderen Speicherbereich liegt als b, würde ich jetzt mal sagen. Kann da leider gerade nicht testen.

      1. Hallo,

        "in PHP bedeutet es dagegen nur, dass sowohl Wert, als auch Datentyp identisch sind. Hier sagt man dann "hat denselben Wert"."

        PHP kann ich nicht richtig.
        string a = "Hase";
        string b = "Hase";

        würde dann a === b true ergeben?

        ja, denn Typ und Wert stimmen überein.

        In Java -soweit ich mich erinnere- ist es so:

        String a = "Hase";
        String b = "Hase";

        a == b wäre false, richtig?

        Nein. Auch in Java ist == ein Operator, der "nur" auf Gleichheit des Wertes prüft. Gleichheit des Typs ist sowieso Grundvoraussetzung dafür, dass der Vergleich snytaktisch überhaupt möglich ist.
        Also ist a==b erfüllt.
        Für C und C++ gilt das ebenso.

        Und zur ursprünglichen Frage: Ich bin der Ansicht, dass die Unterscheidung zwischen "das gleiche" und "dasselbe" nur einen Sinn ergibt, wenn es um reale Gegenstände geht. Wenn ich im Restaurant sage, ich möchte dasselbe wie der Herr am Nebentisch, dann bekomme ich vermutlich Ärger. Bestelle ich aber das gleiche, ist das normalerweise kein Problem.
        Bei abstrakten Größen wie Zahlen oder Maßangaben ist die Unterscheidung zwischen "das gleiche" und "dasselbe" aber IMO sinnlos - auch wenn bei Messwerten kaum jemals zwei Werte wirklich exakt gleich sind.

        Ich sage mal, ich wiege 86kg. Wenn nun jemand anders feststellt, dass er ebenfalls 86kg wiegt, finde ich die Aussage, wir hätten dasselbe Körpergewicht, völlig in Ordnung.

        Ciao,
         Martin

        --
        Wer im Glashaus sitzt, sollte sich nur im Dunkeln ausziehen.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Hi

          In Java -soweit ich mich erinnere- ist es so:

          String a = "Hase";
          String b = "Hase";

          a == b wäre false, richtig?

          Nein. Auch in Java ist == ein Operator, der "nur" auf Gleichheit des Wertes prüft. Gleichheit des Typs ist sowieso Grundvoraussetzung dafür, dass der Vergleich snytaktisch überhaupt möglich ist.
          Also ist a==b erfüllt.
          Für C und C++ gilt das ebenso.

          Stimmt, hast recht. Gerade nochmals nachgeprüft. Wie komm ich bloß darauf?

          Und zur ursprünglichen Frage: Ich bin der Ansicht, dass die Unterscheidung zwischen "das gleiche" und "dasselbe" nur einen Sinn ergibt, wenn es um reale Gegenstände geht. Wenn ich im Restaurant sage, ich möchte dasselbe wie der Herr am Nebentisch, dann bekomme ich vermutlich Ärger.

          Ha ha, na, ob es wirklich Ärger geben würde? Lustige Vorstellung zumindest, wenn der Ober es korrekt auslegen würde.

          »»Bestelle ich aber das gleiche, ist das normalerweise kein Problem.

          Bei abstrakten Größen wie Zahlen oder Maßangaben ist die Unterscheidung zwischen "das gleiche" und "dasselbe" aber IMO sinnlos - auch wenn bei Messwerten kaum jemals zwei Werte wirklich exakt gleich sind.

          Richtig, sinnlos trifft es. Aber trotzdem mal interessant, sich das zu Überlegen. Aber sinnvoll und anwendbar ist es nicht unbedingt. Zumindest fällt mir jetzt auf Anhieb nichts ein, wie man damit Geld verdienen könnte.

          Ich sage mal, ich wiege 86kg. Wenn nun jemand anders feststellt, dass er ebenfalls 86kg wiegt, finde ich die Aussage, wir hätten dasselbe Körpergewicht, völlig in Ordnung.

          Ja, so denke ich auch. 1 und 1 sind die selben Zahlen. Sehr gut, dann kann ich jetzt schlafen gehen. Vorher aber noch bißchen lesen. Buchtip gefällig?

          Thomas Pynchon, V (nicht ganz dünn allerdings. Die Seitenzahl ist neuerdings eins meiner Hauptkriterien bei der Bücherwahl)

          1. Hallo,

            Stimmt, hast recht. Gerade nochmals nachgeprüft. Wie komm ich bloß darauf?

            Du kommst darauf weil das ein sehr seltener Fall ist dass man in Java zwei solche Strings wirklich auf diese Weise generiert und vergleicht. Das hier z.b. gibt schon false:

            String a = "Ha";  
            String c = a + "se";  
            String b = "Hase";  
            System.out.println(a == c);  
            
            

            Es liegt daran wie die JVM String-Literale behandelt. Wenn sie zwei Literale findet wie eben diese "Hase" Strings dann werden diese so weit ich weiß sowieso am gleichen Speicherbereich abgelegt, d.h. beide variablen a und b zeigen in deinem Beispiel auf den gleichen Speicherbereich, obwohl Strings eigentlich Objekte sind. Diese Literale sind aber ein Sonderfall und man sollte in Java immer die "Hase".equals("Hase") methode statt dem == Operator benutzen um konsistente Ergebnisse zu bekommen.

            Das alles ist wirklich extrem von der Implementation der Sprache abhängig und man kann das nicht verallgemeinern.

            Jeena

            1. Hallo!

              d.h. beide variablen a und b zeigen in deinem Beispiel auf den gleichen Speicherbereich,

              Sogar auf den selben. ;)

              Viele Grüße,
              Alexander

            2. Hi

              Stimmt, hast recht. Gerade nochmals nachgeprüft. Wie komm ich bloß darauf?
              Du kommst darauf weil das ein sehr seltener Fall ist dass man in Java zwei solche Strings wirklich auf diese Weise generiert und vergleicht. Das hier z.b. gibt schon false:

              String a = "Ha";

              String c = a + "se";
              String b = "Hase";
              System.out.println(a == c);

              
              >   
                
              Arggh, hast recht. Ist schon ne Zeitlang her. Genau, ich hatte nämlich damals bei meinen Javaprogrammen anfänglich den Fall, dass der Vergleich "false" ergibt. Und dann musste man mit equals() arbeiten, eben.  
                
              Danke für den Hinweis, ich dachte schon, ich spinne.
              
        2. Ich sage mal, ich wiege 86kg. Wenn nun jemand anders feststellt, dass er ebenfalls 86kg wiegt, finde ich die Aussage, wir hätten dasselbe Körpergewicht, völlig in Ordnung.

          Umgangssprachlich sicher - aber ihr habt das gleiche Gewicht, nicht dasselbe Gewicht (bzw. Masse).

          Wenn man hingegen der Wert als Messgröße betrachtet dann wird eure jeweilige Masse durch dieselbe Messgröße bestimmt.

      2. Lieber Kiffer,

        PHP kann ich nicht richtig.
        string a = "Hase";
        string b = "Hase";

        würde dann a === b true ergeben?

        was hat Dich daran gehindert, es auszuprobieren?

        Obwohl a sicherlich in einem anderen Speicherbereich liegt als b? Und damit streng genommen nicht "der selbe" Wert ist?

        Es ist derselbe Wert, aber nicht unter derselben Referenz. Intern mag PHP "optimieren" und tatsächlich für b einfach einen Zeiger auf den Inhalt von a setzen - aber das weiß ich nicht. Aus der Sicht der Programmlogik ist der a-Hase ein anderer als der b-Hase, aber sowohl der _Wert_ als auch der Datentyp ist identisch. Der === Operator wird true ergeben.

        In Java -soweit ich mich erinnere- ist es so:

        String a = "Hase";
        String b = "Hase";

        a == b wäre false, richtig?

        Mit Java habe ich keinerlei Erfahrung, würde mich aber schwerstens wundern, wenn der == Operator tatsächlich false ergäbe. Es mögen vielleicht zwei unterschiedliche String-Objekte sein, ihre Werte sind aber identisch. Da der == Operator weniger streng prüft, sollte das Ergebnis true sein. Erst bei === wäre(!) es möglich, dass hier false entsteht - aber auch nur dann, wenn Java intern mit === auf "identisches Objekt" prüft, anstatt auf "Datentyp und Wert identisch".

        Das "Problem" ist ja, dass Strings und Integer gerne mal als primitive Datentypen gehandhabt werden. Das führt dann dazu, dass auch eine strengere Überprüfung true ergibt.

        Gegenbeispiel aus JavaScript:

        var a = new Object();  
        var b = new Object();  
          
        // die folgenden beiden Zeilen bräuchte es nicht:  
        a.name = "Hase";  
        b.name = "Hase";  
          
        alert(a == b); // false;
        

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Hallo,

          Mit Java habe ich keinerlei Erfahrung, würde mich aber schwerstens wundern, wenn der == Operator tatsächlich false ergäbe.

          Wenn hier nicht die ausnahme der String-literals gewesen wäre dann hätte er durchaus false zurückgegeben.

          Es mögen vielleicht zwei unterschiedliche String-Objekte sein

          Und genau das prüft der == Operator eigentlich. Für das was in JavaScript == macht gibt es in Java die String.isEqual(String)-Methode die man stattdessen unbedingt nutzen sollte.

          ihre Werte sind aber identisch. Da der == Operator weniger streng prüft, sollte das Ergebnis true sein. Erst bei === wäre(!) es möglich, dass hier false entsteht

          So weit ich weiß gibt es in Java keinen === Operator da man ja sowieso keine falschen Typen miteinander vergleichen kann weil man dann den Code eh nicht kompiliert bekommen hätte.

          Jeena

          1. Moin Jeena,

            Mit Java habe ich keinerlei Erfahrung, würde mich aber schwerstens wundern, wenn der == Operator tatsächlich false ergäbe.
            Wenn hier nicht die ausnahme der String-literals gewesen wäre dann hätte er durchaus false zurückgegeben.

            Um das mal aufzuklären: der ==-Operator ist der Identitäts-Operator. Er prüft, ob Variable a auf dasselbe Objekt wie Variable b zeigt. Strings verweisen auf das gleiche Objekt, wenn sie als Literale angegeben wurden (das ist eine Optimierung der JVM) oder wenn man ein Konstrukt der Art

              
            String a = new String();  
            String b = a;  
            if(a == b) {  
              System.out.println("Yay! Identisch!");  
            }  
            
            

            benutzt. Beachte: Strings in Java sind immutable. Ändert man einen String, so wird ein neues String-Objekt erzeugt:

              
            String a = "abc";  
            String b = a;  
            b = b + "hulla";  
              
            if(a != b) {  
              System.out.println("Meh, nicht identisch");  
            }  
            
            

            Es mögen vielleicht zwei unterschiedliche String-Objekte sein
            Und genau das prüft der == Operator eigentlich. Für das was in JavaScript == macht gibt es in Java die String.isEqual(String)-Methode die man stattdessen unbedingt nutzen sollte.

            s/isEqual/equals/
            s/sollte/muss/

            In Java ist equals() die Methode der Wahl, um auf Gleichheit zu prüfen. Zusätzlich implementieren einige Klassen (alle Basis-Datentypen z. B.) das Comparable-Interface, dass einen Stringvergleich (String a kommt bei alphabetischer Sortierung nach String b) erlaubt.

            LG,
             CK

  7. bin gerade etwas zuge... , ähh, verwirrt.

    x = 1
    y = 1

    würde man sagen, x hat den gleichen Wert wie y, oder x hat den selben Wert wie y

    x und y haben eindeutig den _gleichen_ Wert 1, denselben Wert 1 haben sie aber noch lange nicht, weil jede Variable für sich einen eigenen Wert 1 besitzt

    oder anders formuliert, existiert jede Zahl (als abstrakte Entität) nur EINMAL?

    Nein, in diesem Fall existiert die Zahl 1 2x getrennt voneinander.

    Hanna hat einen roten Pulli mit der Artikelnummer 12345 gekauft
    Rita hat einen roten Pulli mit der Artikelnummer 12345 gekauft

    Beide haben also den gleichen Pulli aber noch lange nicht denselben Pulli

    Anders:

    Hanna und Rita stehen am Wühltisch und halten beide denselben (es gibt nur 1 Stück) roten Pulli mit der Artikelnummer 12345 in der Hand.

    Dieser Unterschied kommt in einer Programmiersprache aber nur zu Tragen, wenn man die Variablen per Referenz verwendet bzw. aufeinander referenziert.

    In PHP z.B. in folgendem

    $x = 1;  
    $y =& $x;
    

    zählt man jetzt $y++ zählt, verändert sich $x auch, weil sie denselben Wert teilen

    $x = $y = 1; hingegen würde nur beiden Variablen den gleichen Wert zuweisen

    1. Hello,

      Hanna hat einen roten Pulli mit der Artikelnummer 12345 gekauft
      Rita hat einen roten Pulli mit der Artikelnummer 12345 gekauft

      Und ist es jetzt die gleiche, oder dieselbe Artikelnummer?
      Ist es das gleiche Rot oder dasselbe? Das Rot wird durch seinen Namen gekennzeichnet und das ist beide Male derselbe :-)

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hanna hat einen roten Pulli mit der Artikelnummer 12345 gekauft
        Rita hat einen roten Pulli mit der Artikelnummer 12345 gekauft

        Und ist es jetzt die gleiche, oder dieselbe Artikelnummer?

        Dieselbe Artikelnummer, da diese natürlich eine abstrake Größe darstellt um bei den Worten des OP zu bleiben.

        Ist es das gleiche Rot oder dasselbe? Das Rot wird durch seinen Namen gekennzeichnet und das ist beide Male derselbe :-)

        Das Rot ist ebenfalls dasselbe Rot (sofern man vernachlässigt, dass beide Pullover aus verschiedenen Chargen kommen können und der Farbhersteller z.B. ein anderer ist :))

        1. Ist es das gleiche Rot oder dasselbe? Das Rot wird durch seinen Namen gekennzeichnet und das ist beide Male derselbe :-)

          Das Rot ist ebenfalls dasselbe Rot (sofern man vernachlässigt, dass beide Pullover aus verschiedenen Chargen kommen können und der Farbhersteller z.B. ein anderer ist :))

          Um die Analogie des Restaurants aufzugreifen: Es ist per Definition dieselbe Farbmischung, mit (viel) Glück am Ende aber eben nur die gleiche Farbe.

          1. Um die Analogie des Restaurants aufzugreifen: Es ist per Definition dieselbe Farbmischung, mit (viel) Glück am Ende aber eben nur die gleiche Farbe.

            Wenn beide Pullover mit demselben Knäul Wolle (welches zuvor gefärbt wurde) gestrickt wurden, könnten sie sogar dieselbe Farbe haben :p

            1. Wenn beide Pullover mit demselben Knäul Wolle (welches zuvor gefärbt wurde) gestrickt wurden, könnten sie sogar dieselbe Farbe haben :p

              Niemals! Nicht ein ein Fragment des Knäu(e*)ls wird dieselbe Farbe des nächstliegenden haben! :-)

              (*) Tschulding, bin Pfälzer, kein Ösi ;-)

    2. bin gerade etwas zuge... , ähh, verwirrt.

      x = 1
      y = 1

      würde man sagen, x hat den gleichen Wert wie y, oder x hat den selben Wert wie y

      x und y haben eindeutig den _gleichen_ Wert 1, denselben Wert 1 haben sie aber noch lange nicht, weil jede Variable für sich einen eigenen Wert 1 besitzt

      => warum? Oder woraus folgerst du das?

      oder anders formuliert, existiert jede Zahl (als abstrakte Entität) nur EINMAL?

      Nein, in diesem Fall existiert die Zahl 1 2x getrennt voneinander.

      => wie das?

      Hanna hat einen roten Pulli mit der Artikelnummer 12345 gekauft
      Rita hat einen roten Pulli mit der Artikelnummer 12345 gekauft

      Beide haben also den gleichen Pulli aber noch lange nicht denselben Pulli

      => hui, der Vergleich hinkt aber gewaltig. Ne ne, du hast mich völlig falsch verstanden. Das weiß ich doch alle schon. Siehe Folgeposting von TOM

  8. Hi Kiffer,

    ich würde sagen, dass sowohl x als auch y demselben Irrtum unterliegen, aber im Verhalten gleich sind.

    1. Hi Haudi,

      ich würde sagen, dass sowohl x als auch y demselben Irrtum unterliegen[..]

      das musste mir bei Gelegenheit mal erklären. Hört sich interessant an

      1. Hi Kiffer,

        der Irrtum besteht darin, zu glauben, dass man die 1 ist oder wenigstens auf sie referenziert. Ein weiterer Irrtum ist, zu glauben, dass eine 1 überhaupt als universale Entität existiert und diese eine Bedeutung hat. In Wahrheit sind es nur Variablen, die einen Zustand in unserem relativistischem System darstellen, von dem wir glauben, dass er größer als 0.5 ist und ein bestimmtes Verhalten mit mathematischen Operationen aufweist. Somit haben x und y den gleichen aber nicht denselben Zustand, da dieser wohl zeitgleich nicht existiert.

        beam me up

        1. Hi Haudi,

          der Irrtum besteht darin, zu glauben, dass man die 1 ist oder wenigstens auf sie referenziert. Ein weiterer Irrtum ist, zu glauben, dass eine 1 überhaupt als universale Entität existiert und diese eine Bedeutung hat. In Wahrheit sind es nur Variablen, die einen Zustand in unserem relativistischem System darstellen, von dem wir glauben, dass er größer als 0.5 ist und ein bestimmtes Verhalten mit mathematischen Operationen aufweist. Somit haben x und y den gleichen aber nicht denselben Zustand, da dieser wohl zeitgleich nicht existiert.

          oh, oh, oh, was hast du geschluckt?

          Grüße in die outer regions

  9. x = 1
    y = 1

    würde man sagen, x hat den gleichen Wert wie y, oder x hat den selben Wert wie y

    Die gänzlich abstrakte Fragestellung sollen die Philosophen klären,. Mit der Formulierung aber hast Du die sprachenspezifische Auseinandersetzung provoziert, die Details der Umsetzung im Code der Sprache sind zu offensichtlich relevant. Abstrakt bleibend aber, fänd ich spannender:

    x = y = 1

    Hier wäre IMHO x dasselbe wie y. Bei Deinem Ausgangsbeispiel hingegen wären x und y "nur" das gleiche.

    oder anders formuliert, existiert jede Zahl (als abstrakte Entität) nur EINMAL?

    Das wiederum ist _mir_ zu abstrakt, womöglich fehlt mir für die Frage die Aufnahme spezifischer Substanzen :-)

    1. x = y = 1

      Hier wäre IMHO x dasselbe wie y.

      Jein das obenstehende ist gleichbedeutend zu

      x = 1;
      y = x;

      Das kommt dann schon sehr auf die Interna der Sprache an ob hier nun y ein Duplikat von x erhält oder nur einen Verweis (solange sich nichts ändert) - im Zweifel (und auch für die logische Weiterverarbeitung) ist hier von "gleich" auszugehen, da sich beide Variablen voneinander unabhängig ändern lassen, was bei Referenzen nicht der Fall ist.

      Bei Deinem Ausgangsbeispiel hingegen wären x und y "nur" das gleiche.

      Sehe ich auch so.

  10. Hi there,

    würde man sagen, x hat den gleichen Wert wie y, oder x hat den selben Wert wie y

    das sind semantische Spitzfindigkeiten, die in anderen Sprachen zT gar nicht formulierbar wären.

    oder anders formuliert, existiert jede Zahl (als abstrakte Entität) nur EINMAL?

    Kein abstrakter Begriff (und das ist eine Zahl zweifelsohne) "existiert" unabhängig von seinem Gebrauch. Damit erübrigt sich auch Deine Frage nach der Anzahl der Existenzen...