[Xotcl] psnm - aufgabe 1c

Arthur Fleischmann arthur.fleischmann at chello.at
Thu Nov 7 19:56:01 CET 2002


Hi Irene + alle anderen,

Mir ist bei diesem Bspl aufgefallen, daß die Liste nicht - wie in der Angabe verlangt - sortiert wird. Man müßte also in der Methode lunique statt return $resultat beispielsweise return [lsort $result] einfügen.

if $memberArray($elt) {.....} bedeutet wohl, so wie Ferdinand geschrieben hat, wenn die Variable "true" ist (also einen Wert anders als 0 hat)

Deine Lösung funktioniert auch! 

----- Original Message ----- 
  From: Irene Fellner 
  To: xotcl at alice.wu-wien.ac.at 
  Sent: Thursday, November 07, 2002 4:56 PM
  Subject: Re: [Xotcl] psnm - aufgabe 1c


  hi,

  danke für die antwort, die bedingung ist hier also dass $elt true (1 ist), oder?

  ich frage mich nur, ob man die methode lunique nicht viel einfacher lösen könnte mit:
  proc lunique l {
   foreach elt $l {
      set memberArray($elt) 1
  }
  return [array names memberArray]
  }

  sie bringt bei mir auf jeden fall das gleiche ergebnis, und ist kürzer und verständlicher ....

  lg
  irene
    ----- Original Message ----- 
    From: Ferdinand Eckert 
    To: Irene Fellner 
    Sent: Thursday, November 07, 2002 4:42 PM
    Subject: Re: [Xotcl] psnm - aufgabe 1c


    hi, 

    genau weiß ich's leider nicht (hatte leider noch keine zeit zu lernen), aber ich würde folgendes vermuten:

    die bedingung ist der term "$memberArray($elt)"
    nachdem eine bedingung immer "true" oder "false"  (bzw.  0 oder 1 ist !!!) 
    wird hier der wert von memberArray and der stelle $elt abgefragt (und als true/false interpretiert)
    --> ist dieser 0 --> false
    --> ist er != 0 --> true 

    zumindest in C ist es so, wenn ich mich richtig erinnere ;-) 

    lg Ferdinand


    Irene Fellner wrote:

      hallo,

      bin grad am üben für den test nächste woche :-)
      die lösung von aufgabe 1c (liste - jedes wort nur einmal) versteh ich nicht ganz.
      dh insbesondere folgenden teil der methode lunique:
      foreach elt $l {
      if $memberArray($elt) {
      lappend result $elt
      set memberArray($elt) 0
      }

      ganz konkret kapier ich die if-methode nicht - hier fehlt doch die bedingung oder??
      vielleicht kennt sich ja jemand aus, und kann mir es erklären ...

      danke,
      lg
      irene


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://alice.wu-wien.ac.at/pipermail/xotcl/attachments/20021107/39c3de17/attachment.html


More information about the Xotcl mailing list