--- /dev/null
+
+<DEFINE ID (X) .X>
+
+<DEFINE ENTROPY ("ARGS" L) ()>
+
+<DEFINE IG ("TUPLE" M) <1 .L>>
+
+"LIST SPLICER NCONC"
+
+<DEFINE NCONC1 (L1 L2)
+ <COND (<EMPTY? .L1> .L2)
+ (<EMPTY? .L2> .L1)
+ (T <RPLACD
+ <REST .L1 <- <LENGTH .L1> 1>>
+ .L2>
+ .L1)>>
+
+
+"MULTIPLE LIST SPLICER"
+
+<DEFINE NCONC ("TUPLE" L)
+ <COND (<EMPTY? .L> ())
+ (T <REPEAT ((T <LENGTH .L>) (ANS <.T .L>))
+ <COND (<0? <SET T <- .T 1>>> <RETURN .ANS>)>
+ <SET ANS <NCONC1 <.T .L> .ANS>>>)>>>
+
+
+
+<DEFINE HACK ("TUPLE" L)
+ <COND (<EMPTY? .L> 'NONE-OF-YOUR-BUSINESS)
+ (<==? <TYPE <1 .L>> FIX> <<1 .L> .L>)
+ (T <<LENGTH .L> .L>)>>
+
+"GENERALIZED MAPPER FUNCTION ACCORDING TO THE GOSPEL OF SUSSMAN"
+
+
+<DEFINE *MAP (F L INMAP OUTMAP "AUX" L1 M (DONEF 1)"ACT" G)
+
+"THE ARGUMENTS ARE AS FOLLOWS
+
+ F - THE FUNCTION TO APPLY
+ L - A TUPLE OF LISTS WHOSE ELEMTS ARE TO BE USED AS ARGS
+ INMAP - FUNCTION USED TO GET EACH ELEMENT
+ OUTMAP - FUNCTION TO PROCESS THE VALUES
+"
+
+ <STACKFORM .OUTMAP
+ <HACK <SET M .L>
+ <STACKFORM .F
+ <HACK 3 <COND (<EMPTY? <SET L1 <1 .M>>>
+ <EXIT .G ()>)>
+ <.INMAP .L1>
+ <COND (<AND <EMPTY? <SETLOC <AT .M 1> <REST .L1>>>
+ <G? .DONEF 0>>
+ <SET DONEF -1>)>
+ <SET M <REST .M>>>
+ <NOT <EMPTY? .M>>>>
+ <NOT <0? <SET DONEF <+ .DONEF 1>>>>>>
+
+
+"SPECIFIC INVOCATIONS OF *MAP"
+
+<DEFINE MAPLIST (F "TUPLE" L)
+ <*MAP .F .L ,ID ,LIST>>
+
+<DEFINE MAP (F "TUPLE" L)
+ <*MAP .F .L ,ID ,IG>>
+
+<DEFINE MAPCAR (F "TUPLE" L)
+ <*MAP .F .L 1 ,LIST>>
+
+<DEFINE MAPC (F "TUPLE" L)
+ <*MAP .F .L 1 ,IG>>
+
+<DEFINE MAPCON (F "TUPLE" L)
+ <*MAP .F .L ,ID ,NCONC>>
+
+<DEFINE MAPCAN (F "TUPLE" L)
+ <*MAP .F .L 1 ,NCONC>>
+\f\ 3\f
\ No newline at end of file