asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T GOOF----LE-8-2.0,1]24h5] gguile  gdefine-module*   gice-9 g common-list  gfilenameS fice-9/common-list.scm gexportsS gadjoin gunion g intersection gset-difference g reduce-init greduce gsome gevery gnotany gnotevery gcount-if gfind-if g member-if g remove-if g remove-if-not g delete-if! gdelete-if-not! gbutlast gand? gor? ghas-duplicates? !gpick "g pick-mappings #guniq $   !"# %gset-current-module &% '% (gmemq )greverse! *gmemv +gmap ,gcar -gcdr .glength /gerror 0fnegative argument to butlast 1gmemberC5hp,*]4   $54'>"G(h]45$CCge  gl  gfilenamefice-9/common-list.scm M  O   O   O    gnamegadjoing documentationfGReturn list L, possibly with element E added if it is not already in L.C R  h(7](C(C456/gl1  %gl2  %gfilenamefice-9/common-list.scm Q  U   W   W   W & # W  % W   % gnameguniong documentationfwReturn a new list that is the union of L1 and L2. Elements that occur in both lists occur only once in the result list.C R)*hX](C"8(645$"""gl1  Rgl2  Rgl1   Ggresult   Ggfilenamefice-9/common-list.scm Y  \   ]   ^   ^   _  ! _  % _  ) ^  , _ ( / _ 7 2 _ 1 : _ " = `  G `  G ]  J ] ! R ]   R gnameg intersectiong documentationfyReturn a new list that is the intersection of L1 and L2. Only elements that occur in both lists occur in the result list.CR)*hPr]"8(645$ """jgl1  Igl2  Igl1   >gresult   >gfilenamefice-9/common-list.scm b  d  e   e   f  f   f e  # f $ - f  0 g  3 g % 6 g  > g  > d  A d  I d   I gnamegset-differenceg documentationf5Return elements from list L1 that are not in list L2.CRh ](C456gp  ginit  gl   gfilenamefice-9/common-list.scm i  k   m   m   m   m &  m    gnameg reduce-initg documentationfESame as `reduce' except it implicitly inserts INIT at the start of L.CRh(](C(C6gp  "gl  "gfilenamefice-9/common-list.scm o  u   v   u   v   w  w % " w   " gnamegreduceg documentationf9Combine all the elements of sequence L using a binary operation P. The combination is left-associative. For example, using +, one can add up all the elements. `reduce' allows you to apply a function which accepts only two arguments to more than 2 objects. Functional programmers usually refer to this as foldl.CR+,-h$-13(0"$(C45$C"""8(C445?$C45""gpred gl grest  gl   7gt  # 7gl  C {grest  C {gt  \ {gfilenamefice-9/common-list.scm y       !  #  #  1 ) 7 # 7 C  I  L  Q % R - \  \  j  k ' {  {   gnamegsomeg documentationfpPRED is a boolean function of as many arguments as there are list arguments to `some', i.e., L plus any optional arguments. PRED is applied to successive elements of the list arguments in order. As soon as one of these applications returns a true value, return that value. If no application returns a true value, return #f. All the lists should have the same length.CR+,-hC-13(+"(C45$ "C""3(C445?$45"C";gpred }gl }grest  }gl   2gl  > qgrest  > qgfilenamefice-9/common-list.scm         !  #  '  * ) 0 # 2 >  D  E  G  L % M - W  [  ^  _ ' o  q  }  gnamegeveryg documentationfReturn #t iff every application of PRED to L, etc., returns #t. Analogous to `some' except it returns #t if every application of PRED is #t and #f otherwise.CRhU-134?CMgpred gls gfilenamefice-9/common-list.scm     gnamegnotanyg documentationfReturn #t iff every application of PRED to L, etc., returns #f. Analogous to some but returns #t if no application of PRED returns a true value or #f as soon as any one does.CRhS-134?CKgpred gls gfilenamefice-9/common-list.scm     gnamegnoteveryg documentationfReturn #t iff there is an application of PRED to L, etc., that returns #f. Analogous to some but returns #t as soon as an application of PRED returns #f, or #f otherwise.CRhHh]"0(C45$"" "`gpred  Agl  Agn   6gl   6gfilenamefice-9/common-list.scm           ! ( )  .  6  6   A gnamegcount-ifg documentationfIReturn the number of elements in L for which (PRED element) returns true.CRh(X](C45$C6Pgpred  #gl  #gfilenamefice-9/common-list.scm          !  #   # gnamegfind-ifg documentationf|Search for the first element in L for which (PRED element) returns true. If found, return that element, otherwise return #f.CRh(](C45$C6gpred  "gl  "gfilenamefice-9/common-list.scm         "   " gnameg member-ifg documentationf9Return the first sublist of L for whose car PRED is true.CR)hH]"6(645$ """gpred  Ggl  Ggl   <gresult   <gfilenamefice-9/common-list.scm            ! +  .  1 $ 4  <  <  ?  G   G gnameg remove-ifg documentationfWRemove all elements from L where (PRED element) is true. Return everything that's left.CR)hH]"6(645$"""gpred  Ggl  Ggl   <gresult   <gfilenamefice-9/common-list.scm              !  $ $ '  /  2 & < <  ?  G   G gnameg remove-if-notg documentationfURemove all elements from L where (PRED element) is #f. Return everything that's left.CRh0](C4L5$ "4L5Cgl  -gfilenamefice-9/common-list.scm           %   "  ' " )  *   - gnameg delete-ifCh] OQ6gpred  gl  g delete-if  gfilenamefice-9/common-list.scm    gnameg delete-if!g documentationf#Destructive version of `remove-if'.CRh0](C4L5$4L5C"gl  -gfilenamefice-9/common-list.scm               &  ! ' / -   - gnameg delete-if-notCh] OQ6gpred  gl  g delete-if-not  gfilenamefice-9/common-list.scm    gnamegdelete-if-not!g documentationf'Destructive version of `remove-if-not'.CRh(](C $4L5CCglst  %gn  %gfilenamefice-9/common-list.scm           (  ,  6 ! ( "  $   % gnamegblC./0hH<]HOQ45K $ 45"J64glst  Bgn  Bgl   Bgbl  Bgl   %gfilenamefice-9/common-list.scm       ,  1 2  6  :  B   B gnamegbutlastg documentationf*Return all but the last N elements of LST.CRh(-13(C$@Cgargs !gfilenamefice-9/common-list.scm         ! gnamegand?g documentationf#Return #t iff all of ARGS are true.CRh(-13(C$C@gargs !gfilenamefice-9/common-list.scm        !  ! gnamegor?g documentationf"Return #t iff any of ARGS is true.CR1 h(](C45$C6glst  "gfilenamefice-9/common-list.scm           "   " gnameghas-duplicates?g documentationf3Return #t iff 2 members of LST are equal?, else #f.C RhH]"3(C45$"""gp  Dgl  Dgs   9gl   9gfilenamefice-9/common-list.scm            $ !  $ / ,  1 9  9  :  D   D gnamegpickg documentationfZApply P to each element of L, returning a list of elts for which P returns a non-#f value.C!RhH]"6(C45$"""gp  Ggl  Ggs   <gl   <gt   <gfilenamefice-9/common-list.scm                  $  0 '  A /  * 4  <   <   =   G    G gnameg pick-mappingsg documentationfPApply P to each element of L, returning a list of the non-#f return values of P.C"R)(hH\]"1(645$"""Tgl  Bgacc  7gl   7gfilenamefice-9/common-list.scm                     )   ,   /   7   7   8   B    B gnameguniqg documentationf@Return a list containing elements of L, with duplicates removed.C#RC"gm  (gfilenamefice-9/common-list.scm  4 A M  Q  Y  b  i K o  y  p   C     #w $ % & ( *  ,g    ,i C6