function without(list, test, removedFn) {
 
   return withoutInner(list, removedFn || noop);
 
   function withoutInner(subList, removedFn) {
      return subList  
         ?  ( test(head(subList)) 
                  ? (removedFn(head(subList)), tail(subList)) 
                  : cons(head(subList), withoutInner(tail(subList), removedFn))
            )
         : emptyList
         ;
   }               
}
function without(list, test, removedFn) {
 
   return withoutInner(list, removedFn || noop);
 
   function withoutInner(subList, removedFn) {
      return subList  
         ?  ( test(head(subList)) 
                  ? (removedFn(head(subList)), tail(subList)) 
                  : cons(head(subList), withoutInner(tail(subList), removedFn))
            )
         : emptyList
         ;
   }               
}
function without ( list , test , removedFn ) { return withoutInner ( list , removedFn || noop ) ; function withoutInner ( subList , removedFn ) { return subList ? ( test ( head ( subList ) ) ? ( removedFn ( head ( subList ) ) , tail ( subList ) ) : cons ( head ( subList ) , withoutInner ( tail ( subList ) , removedFn ) ) ) : emptyList ; } }
Return a list like the one given but with the first instance equal
to item removed
Return a list like the one given but with the first instance equal to item removed
Removes elements from list that pass test