4 <DEFINE ENTROPY ("ARGS" L) ()>
6 <DEFINE IG ("TUPLE" M) <1 .L>>
10 <DEFINE NCONC1 (L1 L2)
11 <COND (<EMPTY? .L1> .L2)
14 <REST .L1 <- <LENGTH .L1> 1>>
19 "MULTIPLE LIST SPLICER"
21 <DEFINE NCONC ("TUPLE" L)
22 <COND (<EMPTY? .L> ())
23 (T <REPEAT ((T <LENGTH .L>) (ANS <.T .L>))
24 <COND (<0? <SET T <- .T 1>>> <RETURN .ANS>)>
25 <SET ANS <NCONC1 <.T .L> .ANS>>>)>>>
29 <DEFINE HACK ("TUPLE" L)
30 <COND (<EMPTY? .L> 'NONE-OF-YOUR-BUSINESS)
31 (<==? <TYPE <1 .L>> FIX> <<1 .L> .L>)
32 (T <<LENGTH .L> .L>)>>
34 "GENERALIZED MAPPER FUNCTION ACCORDING TO THE GOSPEL OF SUSSMAN"
37 <DEFINE *MAP (F L INMAP OUTMAP "AUX" L1 M (DONEF 1)"ACT" G)
39 "THE ARGUMENTS ARE AS FOLLOWS
41 F - THE FUNCTION TO APPLY
42 L - A TUPLE OF LISTS WHOSE ELEMTS ARE TO BE USED AS ARGS
43 INMAP - FUNCTION USED TO GET EACH ELEMENT
44 OUTMAP - FUNCTION TO PROCESS THE VALUES
50 <HACK 3 <COND (<EMPTY? <SET L1 <1 .M>>>
53 <COND (<AND <EMPTY? <SETLOC <AT .M 1> <REST .L1>>>
58 <NOT <0? <SET DONEF <+ .DONEF 1>>>>>>
61 "SPECIFIC INVOCATIONS OF *MAP"
63 <DEFINE MAPLIST (F "TUPLE" L)
64 <*MAP .F .L ,ID ,LIST>>
66 <DEFINE MAP (F "TUPLE" L)
69 <DEFINE MAPCAR (F "TUPLE" L)
72 <DEFINE MAPC (F "TUPLE" L)
75 <DEFINE MAPCON (F "TUPLE" L)
76 <*MAP .F .L ,ID ,NCONC>>
78 <DEFINE MAPCAN (F "TUPLE" L)
79 <*MAP .F .L 1 ,NCONC>>