Communauté Eggdrop

Version complète : Différence entre deux listes
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Voici deux moyens d'avoir la différence entre deux liste, ou plus exactement la liste des éléments de la première liste qui n'appartiennent pas à la seconde.

Cette méthode n'est pas optimale du tout, mais fonctionne sur quasi toutes les versions de tcl :
tcl
proc ldiff {list1 list2} {
   foreach suppr $list2 {
      set ind [lsearch $list1 $suppr]
      set list1 [lreplace $list1 $ind $ind]
   }
   return $list1
}



Cette version est l'approche optimale, moins explicite pour le néophyte mais elle soulage l'eggdrop :
tcl
proc ldiff {list1 list2} {
   foreach element $list1 {
      if { !($element in $list2) } {
         lappend diff $element
      }
   }
   return $diff
}