Changeset 37762 in project


Ignore:
Timestamp:
07/05/19 12:16:34 (4 months ago)
Author:
juergen
Message:

biglists-0.3: For macro renamed Collect

Location:
release/5/biglists
Files:
6 edited
1 copied

Legend:

Unmodified
Added
Removed
  • release/5/biglists/tags/0.3/biglists.egg

    r37756 r37762  
    55 (test-dependencies bindings simple-tests)
    66 (dependencies bindings)
    7  (author "[[Juergen Lorenz]]")
    8  (version "0.2")
     7 (author "Juergen Lorenz")
     8 (version "0.3")
    99 (components (extension biglists)))
    1010
  • release/5/biglists/tags/0.3/biglists.scm

    r37756 r37762  
    5252  BigList?
    5353  BigList->list
     54  Collect
    5455  Cons
    5556  Cycle
     
    6970  Fold-right
    7071  Fold-right0
    71   For
    7272  For-each
    7373  First
     
    11121112    ))
    11131113
    1114 ;;; (For item-xpr (var xs ok-xpr ...) (var1 xs1 ok-xpr1 ...) ...)
     1114;;; (Collect item-xpr (var xs ok-xpr ...) (var1 xs1 ok-xpr1 ...) ...)
    11151115;;; -------------------------------------------------------------
    1116 (define-syntax For
     1116(define-syntax Collect
    11171117  (syntax-rules ()
    11181118   ((_ item-xpr (var xs ok-xpr ...))
     
    11341134               (Cons item-xpr (recur (Rest seq)) #t)
    11351135               (recur (Rest seq)))))))
    1136       (else (error 'For "not a biglist" xs))))
     1136      (else (error 'Collect "not a biglist" xs))))
    11371137    ((_ item-xpr (var xs ok-xpr ...) (var1 xs1 ok-xpr1 ...) ...)
    11381138     (let recur ((seq xs))
     
    11411141           ((Eager? seq) '())
    11421142           ((Lazy? seq) eos)
    1143            (else (error 'For "not a biglist" seq)))
     1143           (else (error 'Collect "not a biglist" seq)))
    11441144         (let ((var (First seq)))
    11451145           (if (and ok-xpr ...)
    1146              (Append (For item-xpr (var1 xs1 ok-xpr1 ...) ...)
     1146             (Append (Collect item-xpr (var1 xs1 ok-xpr1 ...) ...)
    11471147                     (recur (Rest seq)))
    11481148             (recur (Rest seq)))))))
     
    12161216      (BigList->list k xs)
    12171217      "transforms a possibly infinite biglist xs into a list")
    1218     (Cons
     1218    (Collect
    12191219      macro:
    1220       (Cons x y finite?)
    1221       (Cons x y)
    1222       "returns either a lazy or an eager biglist")
    1223     (Cycle
    1224       procedure:
    1225       (Cycle xs)
    1226       "returns an infinite biglist by appending the finite"
    1227       "biglist xs over and over")
    1228     (Cycle-times
    1229       procedure:
    1230       (Cycle k xs)
    1231       "returns a finite biglist by appending the finite"
    1232       "biglist xs k times")
    1233     (Drop
    1234       procedure:
    1235       (Drop k)
    1236       (Drop k xs)
    1237       "drops the first k items of xs")
    1238     (Drop-while
    1239       procedure:
    1240       (Drop-while ok?)
    1241       (Drop-while ok? xs)
    1242       "returns the xs whith those front items x removed"
    1243       "which pass ok?")
    1244     (Drop-until
    1245       procedure:
    1246       (Drop-until ok?)
    1247       (Drop-until ok? xs)
    1248       "returns the xs whith those front items x removed"
    1249       "which don't pass ok?")
    1250     (Eager?
    1251       procedure:
    1252       (Eager? xpr)
    1253       "is xpr an eager biglist, i.e. a normal list?")
    1254     (Eq?
    1255       procedure:
    1256       (Eq? xs ys)
    1257       "returns #t if both lists have same length"
    1258       "and corresponding items are eq?")
    1259     (Eqp?
    1260       procedure:
    1261       (Eqp? =?)
    1262       (Eqp? =? xs ys)
    1263       "returns #t if both lists have same length"
    1264       "and corresponding items are =?")
    1265     (Equal?
    1266       procedure:
    1267       (Equal? xs ys)
    1268       "returns #t if both lists have same length"
    1269       "and corresponding items are equal?")
    1270     (Eqv?
    1271       procedure:
    1272       (Eqv? xs ys)
    1273       "returns #t if both lists have same length"
    1274       "and corresponding items are eqv?")
    1275     (Every?
    1276       procedure:
    1277       (Every? ok?)
    1278       (Every? ok? xs)
    1279       "returns #t if every item of the finite biglist xs"
    1280       "passes the ok? test")
    1281     (Filter
    1282       procedure:
    1283       (Filter ok?)
    1284       (Filter ok? xs)
    1285       "removes all items from the biglist xs which"
    1286       "do not pass the ok? test")
    1287     (Fold-left
    1288       procedure:
    1289       (Fold-left op init)
    1290       (Fold-left op init . xss)
    1291       "folds the finite biglists xss from the left")
    1292     (Fold-left0
    1293       procedure:
    1294       (Fold-left0 op)
    1295       (Fold-left0 op . xss)
    1296       "folds the finite biglists (map Rest xss) from the left"
    1297       "with init (map First xss)")
    1298     (Fold-right
    1299       procedure:
    1300       (Fold-right op init)
    1301       (Fold-right op init . xss)
    1302       "folds the finite biglists xss from the right")
    1303     (Fold-right0
    1304       procedure:
    1305       (Fold-right0 op)
    1306       (Fold-right0 op . xss)
    1307       "folds the finite biglists (map Rest xss) from the right"
    1308       "with init (map First xss)")
    1309     (For
    1310       macro:
    1311       (For item-xpr (var xs ok-xpr ...) (var1 xs1 ok-xpr1 ...) ...)
     1220      (Collect item-xpr (var xs ok-xpr ...) (var1 xs1 ok-xpr1 ...) ...)
    13121221      "creates a new list by binding var to each element"
    13131222      "of the list xs in sequence, and if it passes the checks,"
     
    13171226      "qualifier have access to the variables of qualifiers"
    13181227      "to its left.")
     1228    (Cons
     1229      macro:
     1230      (Cons x y finite?)
     1231      (Cons x y)
     1232      "returns either a lazy or an eager biglist")
     1233    (Cycle
     1234      procedure:
     1235      (Cycle xs)
     1236      "returns an infinite biglist by appending the finite"
     1237      "biglist xs over and over")
     1238    (Cycle-times
     1239      procedure:
     1240      (Cycle k xs)
     1241      "returns a finite biglist by appending the finite"
     1242      "biglist xs k times")
     1243    (Drop
     1244      procedure:
     1245      (Drop k)
     1246      (Drop k xs)
     1247      "drops the first k items of xs")
     1248    (Drop-while
     1249      procedure:
     1250      (Drop-while ok?)
     1251      (Drop-while ok? xs)
     1252      "returns the xs whith those front items x removed"
     1253      "which pass ok?")
     1254    (Drop-until
     1255      procedure:
     1256      (Drop-until ok?)
     1257      (Drop-until ok? xs)
     1258      "returns the xs whith those front items x removed"
     1259      "which don't pass ok?")
     1260    (Eager?
     1261      procedure:
     1262      (Eager? xpr)
     1263      "is xpr an eager biglist, i.e. a normal list?")
     1264    (Eq?
     1265      procedure:
     1266      (Eq? xs ys)
     1267      "returns #t if both lists have same length"
     1268      "and corresponding items are eq?")
     1269    (Eqp?
     1270      procedure:
     1271      (Eqp? =?)
     1272      (Eqp? =? xs ys)
     1273      "returns #t if both lists have same length"
     1274      "and corresponding items are =?")
     1275    (Equal?
     1276      procedure:
     1277      (Equal? xs ys)
     1278      "returns #t if both lists have same length"
     1279      "and corresponding items are equal?")
     1280    (Eqv?
     1281      procedure:
     1282      (Eqv? xs ys)
     1283      "returns #t if both lists have same length"
     1284      "and corresponding items are eqv?")
     1285    (Every?
     1286      procedure:
     1287      (Every? ok?)
     1288      (Every? ok? xs)
     1289      "returns #t if every item of the finite biglist xs"
     1290      "passes the ok? test")
     1291    (Filter
     1292      procedure:
     1293      (Filter ok?)
     1294      (Filter ok? xs)
     1295      "removes all items from the biglist xs which"
     1296      "do not pass the ok? test")
     1297    (Fold-left
     1298      procedure:
     1299      (Fold-left op init)
     1300      (Fold-left op init . xss)
     1301      "folds the finite biglists xss from the left")
     1302    (Fold-left0
     1303      procedure:
     1304      (Fold-left0 op)
     1305      (Fold-left0 op . xss)
     1306      "folds the finite biglists (map Rest xss) from the left"
     1307      "with init (map First xss)")
     1308    (Fold-right
     1309      procedure:
     1310      (Fold-right op init)
     1311      (Fold-right op init . xss)
     1312      "folds the finite biglists xss from the right")
     1313    (Fold-right0
     1314      procedure:
     1315      (Fold-right0 op)
     1316      (Fold-right0 op . xss)
     1317      "folds the finite biglists (map Rest xss) from the right"
     1318      "with init (map First xss)")
    13191319    (For-each
    13201320      procedure:
  • release/5/biglists/tags/0.3/tests/run.scm

    r37756 r37762  
    244244          '(1 2 3 4 5))
    245245  (Print five)
    246   (equal? (BigList->list (For (add1 x) (x four)))
     246  (equal? (BigList->list (Collect (add1 x) (x four)))
    247247          '(1 2 3 4)); map
    248248  (equal? (BigList->list
    249             (For x (x (List 0 1 2 3 4 5 6) (odd? x)))) ; filter
     249            (Collect x (x (List 0 1 2 3 4 5 6) (odd? x)))) ; filter
    250250          '(1 3 5))
    251251  (equal? (BigList->list
    252             (For (* 10 n)
    253                  (n (List 0 1 2 3 4 5 6) (positive? n) (even?  n))))
     252            (Collect
     253              (* 10 n)
     254              (n (List 0 1 2 3 4 5 6) (positive? n) (even?  n))))
    254255          '(20 40 60))
    255256  (equal? (BigList->list
    256             (For (list c k)
    257                  (c (List 'A 'B 'C)) ;lazy
    258                  (k '(1 2 3 4)))) ;eager
    259           '((A 1) (A 2) (A 3) (A 4)
    260             (B 1) (B 2) (B 3) (B 4)
    261             (C 1) (C 2) (C 3) (C 4)))
    262   (equal? (BigList->list
    263             (For (list c k)
    264                  (c (List 'A 'B 'C)) ;lazy
    265                  (k (List 1 2 3 4)))) ;lazy
    266           '((A 1) (A 2) (A 3) (A 4)
    267             (B 1) (B 2) (B 3) (B 4)
    268             (C 1) (C 2) (C 3) (C 4)))
    269   (equal? (For (list c k)
    270                (c '(A B C)) ;eager
    271                (k (List 1 2 3 4))) ;lazy
    272           '((A 1) (A 2) (A 3) (A 4)
    273             (B 1) (B 2) (B 3) (B 4)
    274             (C 1) (C 2) (C 3) (C 4)))
    275   (equal? (For (list c k)
    276                (c '(A B C)) ;eager
    277                (k '(1 2 3 4))) ;eager
     257            (Collect (list c k)
     258                     (c (List 'A 'B 'C)) ;lazy
     259                     (k '(1 2 3 4)))) ;eager
     260          '((A 1) (A 2) (A 3) (A 4)
     261            (B 1) (B 2) (B 3) (B 4)
     262            (C 1) (C 2) (C 3) (C 4)))
     263  (equal? (BigList->list
     264            (Collect (list c k)
     265                     (c (List 'A 'B 'C)) ;lazy
     266                     (k (List 1 2 3 4)))) ;lazy
     267          '((A 1) (A 2) (A 3) (A 4)
     268            (B 1) (B 2) (B 3) (B 4)
     269            (C 1) (C 2) (C 3) (C 4)))
     270  (equal? (Collect (list c k)
     271                   (c '(A B C)) ;eager
     272                   (k (List 1 2 3 4))) ;lazy
     273          '((A 1) (A 2) (A 3) (A 4)
     274            (B 1) (B 2) (B 3) (B 4)
     275            (C 1) (C 2) (C 3) (C 4)))
     276  (equal? (Collect (list c k)
     277                   (c '(A B C)) ;eager
     278                   (k '(1 2 3 4))) ;eager
    278279          '((A 1) (A 2) (A 3) (A 4)
    279280            (B 1) (B 2) (B 3) (B 4)
  • release/5/biglists/trunk/biglists.egg

    r37756 r37762  
    55 (test-dependencies bindings simple-tests)
    66 (dependencies bindings)
    7  (author "[[Juergen Lorenz]]")
    8  (version "0.2")
     7 (author "Juergen Lorenz")
     8 (version "0.3")
    99 (components (extension biglists)))
    1010
  • release/5/biglists/trunk/biglists.scm

    r37756 r37762  
    5252  BigList?
    5353  BigList->list
     54  Collect
    5455  Cons
    5556  Cycle
     
    6970  Fold-right
    7071  Fold-right0
    71   For
    7272  For-each
    7373  First
     
    11121112    ))
    11131113
    1114 ;;; (For item-xpr (var xs ok-xpr ...) (var1 xs1 ok-xpr1 ...) ...)
     1114;;; (Collect item-xpr (var xs ok-xpr ...) (var1 xs1 ok-xpr1 ...) ...)
    11151115;;; -------------------------------------------------------------
    1116 (define-syntax For
     1116(define-syntax Collect
    11171117  (syntax-rules ()
    11181118   ((_ item-xpr (var xs ok-xpr ...))
     
    11341134               (Cons item-xpr (recur (Rest seq)) #t)
    11351135               (recur (Rest seq)))))))
    1136       (else (error 'For "not a biglist" xs))))
     1136      (else (error 'Collect "not a biglist" xs))))
    11371137    ((_ item-xpr (var xs ok-xpr ...) (var1 xs1 ok-xpr1 ...) ...)
    11381138     (let recur ((seq xs))
     
    11411141           ((Eager? seq) '())
    11421142           ((Lazy? seq) eos)
    1143            (else (error 'For "not a biglist" seq)))
     1143           (else (error 'Collect "not a biglist" seq)))
    11441144         (let ((var (First seq)))
    11451145           (if (and ok-xpr ...)
    1146              (Append (For item-xpr (var1 xs1 ok-xpr1 ...) ...)
     1146             (Append (Collect item-xpr (var1 xs1 ok-xpr1 ...) ...)
    11471147                     (recur (Rest seq)))
    11481148             (recur (Rest seq)))))))
     
    12161216      (BigList->list k xs)
    12171217      "transforms a possibly infinite biglist xs into a list")
    1218     (Cons
     1218    (Collect
    12191219      macro:
    1220       (Cons x y finite?)
    1221       (Cons x y)
    1222       "returns either a lazy or an eager biglist")
    1223     (Cycle
    1224       procedure:
    1225       (Cycle xs)
    1226       "returns an infinite biglist by appending the finite"
    1227       "biglist xs over and over")
    1228     (Cycle-times
    1229       procedure:
    1230       (Cycle k xs)
    1231       "returns a finite biglist by appending the finite"
    1232       "biglist xs k times")
    1233     (Drop
    1234       procedure:
    1235       (Drop k)
    1236       (Drop k xs)
    1237       "drops the first k items of xs")
    1238     (Drop-while
    1239       procedure:
    1240       (Drop-while ok?)
    1241       (Drop-while ok? xs)
    1242       "returns the xs whith those front items x removed"
    1243       "which pass ok?")
    1244     (Drop-until
    1245       procedure:
    1246       (Drop-until ok?)
    1247       (Drop-until ok? xs)
    1248       "returns the xs whith those front items x removed"
    1249       "which don't pass ok?")
    1250     (Eager?
    1251       procedure:
    1252       (Eager? xpr)
    1253       "is xpr an eager biglist, i.e. a normal list?")
    1254     (Eq?
    1255       procedure:
    1256       (Eq? xs ys)
    1257       "returns #t if both lists have same length"
    1258       "and corresponding items are eq?")
    1259     (Eqp?
    1260       procedure:
    1261       (Eqp? =?)
    1262       (Eqp? =? xs ys)
    1263       "returns #t if both lists have same length"
    1264       "and corresponding items are =?")
    1265     (Equal?
    1266       procedure:
    1267       (Equal? xs ys)
    1268       "returns #t if both lists have same length"
    1269       "and corresponding items are equal?")
    1270     (Eqv?
    1271       procedure:
    1272       (Eqv? xs ys)
    1273       "returns #t if both lists have same length"
    1274       "and corresponding items are eqv?")
    1275     (Every?
    1276       procedure:
    1277       (Every? ok?)
    1278       (Every? ok? xs)
    1279       "returns #t if every item of the finite biglist xs"
    1280       "passes the ok? test")
    1281     (Filter
    1282       procedure:
    1283       (Filter ok?)
    1284       (Filter ok? xs)
    1285       "removes all items from the biglist xs which"
    1286       "do not pass the ok? test")
    1287     (Fold-left
    1288       procedure:
    1289       (Fold-left op init)
    1290       (Fold-left op init . xss)
    1291       "folds the finite biglists xss from the left")
    1292     (Fold-left0
    1293       procedure:
    1294       (Fold-left0 op)
    1295       (Fold-left0 op . xss)
    1296       "folds the finite biglists (map Rest xss) from the left"
    1297       "with init (map First xss)")
    1298     (Fold-right
    1299       procedure:
    1300       (Fold-right op init)
    1301       (Fold-right op init . xss)
    1302       "folds the finite biglists xss from the right")
    1303     (Fold-right0
    1304       procedure:
    1305       (Fold-right0 op)
    1306       (Fold-right0 op . xss)
    1307       "folds the finite biglists (map Rest xss) from the right"
    1308       "with init (map First xss)")
    1309     (For
    1310       macro:
    1311       (For item-xpr (var xs ok-xpr ...) (var1 xs1 ok-xpr1 ...) ...)
     1220      (Collect item-xpr (var xs ok-xpr ...) (var1 xs1 ok-xpr1 ...) ...)
    13121221      "creates a new list by binding var to each element"
    13131222      "of the list xs in sequence, and if it passes the checks,"
     
    13171226      "qualifier have access to the variables of qualifiers"
    13181227      "to its left.")
     1228    (Cons
     1229      macro:
     1230      (Cons x y finite?)
     1231      (Cons x y)
     1232      "returns either a lazy or an eager biglist")
     1233    (Cycle
     1234      procedure:
     1235      (Cycle xs)
     1236      "returns an infinite biglist by appending the finite"
     1237      "biglist xs over and over")
     1238    (Cycle-times
     1239      procedure:
     1240      (Cycle k xs)
     1241      "returns a finite biglist by appending the finite"
     1242      "biglist xs k times")
     1243    (Drop
     1244      procedure:
     1245      (Drop k)
     1246      (Drop k xs)
     1247      "drops the first k items of xs")
     1248    (Drop-while
     1249      procedure:
     1250      (Drop-while ok?)
     1251      (Drop-while ok? xs)
     1252      "returns the xs whith those front items x removed"
     1253      "which pass ok?")
     1254    (Drop-until
     1255      procedure:
     1256      (Drop-until ok?)
     1257      (Drop-until ok? xs)
     1258      "returns the xs whith those front items x removed"
     1259      "which don't pass ok?")
     1260    (Eager?
     1261      procedure:
     1262      (Eager? xpr)
     1263      "is xpr an eager biglist, i.e. a normal list?")
     1264    (Eq?
     1265      procedure:
     1266      (Eq? xs ys)
     1267      "returns #t if both lists have same length"
     1268      "and corresponding items are eq?")
     1269    (Eqp?
     1270      procedure:
     1271      (Eqp? =?)
     1272      (Eqp? =? xs ys)
     1273      "returns #t if both lists have same length"
     1274      "and corresponding items are =?")
     1275    (Equal?
     1276      procedure:
     1277      (Equal? xs ys)
     1278      "returns #t if both lists have same length"
     1279      "and corresponding items are equal?")
     1280    (Eqv?
     1281      procedure:
     1282      (Eqv? xs ys)
     1283      "returns #t if both lists have same length"
     1284      "and corresponding items are eqv?")
     1285    (Every?
     1286      procedure:
     1287      (Every? ok?)
     1288      (Every? ok? xs)
     1289      "returns #t if every item of the finite biglist xs"
     1290      "passes the ok? test")
     1291    (Filter
     1292      procedure:
     1293      (Filter ok?)
     1294      (Filter ok? xs)
     1295      "removes all items from the biglist xs which"
     1296      "do not pass the ok? test")
     1297    (Fold-left
     1298      procedure:
     1299      (Fold-left op init)
     1300      (Fold-left op init . xss)
     1301      "folds the finite biglists xss from the left")
     1302    (Fold-left0
     1303      procedure:
     1304      (Fold-left0 op)
     1305      (Fold-left0 op . xss)
     1306      "folds the finite biglists (map Rest xss) from the left"
     1307      "with init (map First xss)")
     1308    (Fold-right
     1309      procedure:
     1310      (Fold-right op init)
     1311      (Fold-right op init . xss)
     1312      "folds the finite biglists xss from the right")
     1313    (Fold-right0
     1314      procedure:
     1315      (Fold-right0 op)
     1316      (Fold-right0 op . xss)
     1317      "folds the finite biglists (map Rest xss) from the right"
     1318      "with init (map First xss)")
    13191319    (For-each
    13201320      procedure:
  • release/5/biglists/trunk/tests/run.scm

    r37756 r37762  
    244244          '(1 2 3 4 5))
    245245  (Print five)
    246   (equal? (BigList->list (For (add1 x) (x four)))
     246  (equal? (BigList->list (Collect (add1 x) (x four)))
    247247          '(1 2 3 4)); map
    248248  (equal? (BigList->list
    249             (For x (x (List 0 1 2 3 4 5 6) (odd? x)))) ; filter
     249            (Collect x (x (List 0 1 2 3 4 5 6) (odd? x)))) ; filter
    250250          '(1 3 5))
    251251  (equal? (BigList->list
    252             (For (* 10 n)
    253                  (n (List 0 1 2 3 4 5 6) (positive? n) (even?  n))))
     252            (Collect
     253              (* 10 n)
     254              (n (List 0 1 2 3 4 5 6) (positive? n) (even?  n))))
    254255          '(20 40 60))
    255256  (equal? (BigList->list
    256             (For (list c k)
    257                  (c (List 'A 'B 'C)) ;lazy
    258                  (k '(1 2 3 4)))) ;eager
    259           '((A 1) (A 2) (A 3) (A 4)
    260             (B 1) (B 2) (B 3) (B 4)
    261             (C 1) (C 2) (C 3) (C 4)))
    262   (equal? (BigList->list
    263             (For (list c k)
    264                  (c (List 'A 'B 'C)) ;lazy
    265                  (k (List 1 2 3 4)))) ;lazy
    266           '((A 1) (A 2) (A 3) (A 4)
    267             (B 1) (B 2) (B 3) (B 4)
    268             (C 1) (C 2) (C 3) (C 4)))
    269   (equal? (For (list c k)
    270                (c '(A B C)) ;eager
    271                (k (List 1 2 3 4))) ;lazy
    272           '((A 1) (A 2) (A 3) (A 4)
    273             (B 1) (B 2) (B 3) (B 4)
    274             (C 1) (C 2) (C 3) (C 4)))
    275   (equal? (For (list c k)
    276                (c '(A B C)) ;eager
    277                (k '(1 2 3 4))) ;eager
     257            (Collect (list c k)
     258                     (c (List 'A 'B 'C)) ;lazy
     259                     (k '(1 2 3 4)))) ;eager
     260          '((A 1) (A 2) (A 3) (A 4)
     261            (B 1) (B 2) (B 3) (B 4)
     262            (C 1) (C 2) (C 3) (C 4)))
     263  (equal? (BigList->list
     264            (Collect (list c k)
     265                     (c (List 'A 'B 'C)) ;lazy
     266                     (k (List 1 2 3 4)))) ;lazy
     267          '((A 1) (A 2) (A 3) (A 4)
     268            (B 1) (B 2) (B 3) (B 4)
     269            (C 1) (C 2) (C 3) (C 4)))
     270  (equal? (Collect (list c k)
     271                   (c '(A B C)) ;eager
     272                   (k (List 1 2 3 4))) ;lazy
     273          '((A 1) (A 2) (A 3) (A 4)
     274            (B 1) (B 2) (B 3) (B 4)
     275            (C 1) (C 2) (C 3) (C 4)))
     276  (equal? (Collect (list c k)
     277                   (c '(A B C)) ;eager
     278                   (k '(1 2 3 4))) ;eager
    278279          '((A 1) (A 2) (A 3) (A 4)
    279280            (B 1) (B 2) (B 3) (B 4)
Note: See TracChangeset for help on using the changeset viewer.