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¤ 1gmember¤C5hp,*]4   $54'>"G(hî]45$CŒCæge  gl  gfilenamefice-9/common-list.scmŒ M ŒŒ  O ŒŒ  O ŒŒ  O ŒŒ   gnamegadjoinŒg documentationfGReturn list L, possibly with element E added if it is not already in L.ŒC R  h(7](C(CŽ456/gl1  %gl2  %gfilenamefice-9/common-list.scmŒ Q ŒŒ  U ŒŒ  W ŒŒ  W ŒŒ  W &ŒŒ # W ŒŒ % W ŒŒ  % gnamegunionŒg 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 intersectionŒg 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-differenceŒg documentationf5Return elements from list L1 that are not in list L2.ŒCRh ](C45Ž6gp  ginit  gl   gfilenamefice-9/common-list.scmŒ i ŒŒ  k ŒŒ  m ŒŒ  m ŒŒ  m ŒŒ  m &ŒŒ  m ŒŒ   gnameg reduce-initŒg documentationfESame as `reduce' except it implicitly inserts INIT at the start of L.ŒCRh(](CŽ(CŽ6øgp  "gl  "gfilenamefice-9/common-list.scmŒ o ŒŒ  u ŒŒ  v ŒŒ  u ŒŒ  v ŒŒ  w ŒŒ w %ŒŒ " w ŒŒ  " gnamegreduceŒg 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?$CŽ45"ÿÿÈ"ÿÿ¼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 ‡ 'ŒŒ { ‡ ŒŒ { „ ŒŒ ‡  gnamegsomeŒg 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+,-h€C-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 ‘ ŒŒ }  gnamegeveryŒg 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Œ – ŒŒ š ŒŒ  š ŒŒ  gnamegnotanyŒg documentationf®Return #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Œ œ ŒŒ   ŒŒ    ŒŒ  gnamegnoteveryŒg documentationfªReturn #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-ifŒg documentationfIReturn the number of elements in L for which (PRED element) returns true.ŒCRh(X](C45$CŽ6Pgpred  #gl  #gfilenamefice-9/common-list.scmŒ © ŒŒ  ¬ ŒŒ ­ ŒŒ  ­ ŒŒ  ­ ŒŒ  ¬ ŒŒ  ­ ŒŒ ! ® ŒŒ # ® ŒŒ  # gnamegfind-ifŒg documentationf|Search for the first element in L for which (PRED element) returns true. If found, return that element, otherwise return #f.ŒCRh(](C45$CŽ6gpred  "gl  "gfilenamefice-9/common-list.scmŒ ° ŒŒ  ² ŒŒ ³ ŒŒ  ³ ŒŒ  ³ ŒŒ  ² ŒŒ ´ ŒŒ " ´ ŒŒ  " gnameg member-ifŒg 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-ifŒg 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-notŒg documentationfURemove all elements from L where (PRED element) is #f. Return everything that's left.ŒCRh0Û](C4L5$ Ž"ÿÿã4LŽ5CÓgl  -gfilenamefice-9/common-list.scmŒ È ŒŒ  É ŒŒ É ŒŒ Ê ŒŒ  Ê ŒŒ  Ê ŒŒ  É ŒŒ  Ê %ŒŒ  Ê ŒŒ " Ì ŒŒ ' Ì "ŒŒ ) Ì ŒŒ * Ì ŒŒ  - gnameg delete-ifŒChÚ] OQ6Ògpred  gl  g delete-if  gfilenamefice-9/common-list.scmŒ Æ ŒŒ È ŒŒ   gnameg delete-if!Œg documentationf#Destructive version of `remove-if'.ŒCRh0ß](C4L5$4LŽ5CŽ"ÿÿÕ×gl  -gfilenamefice-9/common-list.scmŒ Ñ ŒŒ  Ò ŒŒ Ò ŒŒ Ó ŒŒ  Ó ŒŒ  Ó ŒŒ  Ò ŒŒ  Õ ŒŒ  Õ &ŒŒ Õ ŒŒ ! Õ ŒŒ ' Ó /ŒŒ - Ó ŒŒ  - gnameg delete-if-notŒChæ] OQ6Þgpred  gl  g delete-if-not  gfilenamefice-9/common-list.scmŒ Ï ŒŒ Ñ ŒŒ   gnamegdelete-if-not!Œg documentationf'Destructive version of `remove-if-not'.ŒCRh(Ó](C ”$4LŽ™5ŒCCËglst  %gn  %gfilenamefice-9/common-list.scmŒ Û ŒŒ  Ü ŒŒ  Ý ŒŒ  Ü ŒŒ  Þ ŒŒ  Þ (ŒŒ  Þ ,ŒŒ  Þ 6ŒŒ ! Þ (ŒŒ " Þ ŒŒ $ ß ŒŒ  % gnamegblŒC./0hH<]HOQ45˜K ’$ 45"J64glst  Bgn  Bgl   Bgbl  Bgl   %gfilenamefice-9/common-list.scmŒ Ø ŒŒ  Ú ŒŒ  Ú ŒŒ  Ú ŒŒ , à ŒŒ 1 à ŒŒ 2 á ŒŒ 6 á ŒŒ : á ŒŒ B à ŒŒ  B gnamegbutlastŒg documentationf*Return all but the last N elements of LST.ŒCRh(Ô-13(C$Ž@CÌgargs !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(](C4Ž5$CŽ6ÿglst  "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 gnamegpickŒg 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-mappingsŒg 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 gnameguniqŒg 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