code: function sc_filterMap(proc, l1, l2, l3) {
      if (l2 === undefined)
  	return sc_filterMap1(proc, l1);
      else if (l3 === undefined)
  	return sc_filterMap2(proc, l1, l2);
      // else
      var nbApplyArgs = arguments.length - 1;
      var applyArgs = new Array(nbApplyArgs);
      var revres = null;
      while (l1 !== null) {
  	for (var i = 0; i < nbApplyArgs; i++) {
  	    applyArgs[i] = arguments[i + 1].car;
  	    arguments[i + 1] = arguments[i + 1].cdr;
  	}
  	var tmp = proc.apply(null, applyArgs);
  	if(tmp !== false) revres = sc_cons(tmp, revres);
      }
      return sc_reverseAppendBang(revres, null);
  }
docs: * META ((export #t))