Both `filter-map` and `map-filter` use two quotes to filter and map at the same time. That requires recalculation of the new value and the condition, while it often happens you want to have the condition depend on the new value. Therefore you want a single quotation that has both the new value and the condition. I wrote map-if for that, any comments? : map-if ( ... seq quot: ( ... elt -- ... newelt ? ) -- ... newseq ) V{ } clone [ [ swap [ push ] [ 2drop ] if ] curry compose each ] keep ; inline