operator: such-that

    description:
        such-that[op1, op2, ... , opn] seq 
        filters the given sequence to elements that return true for op applied to that element
        where the coeff of |true> must be >= 0.5     
        
    examples:
        is-hungry |Fred> => |yes>
        is-hungry |Sam> => |no>
        such-that[is-hungry] rel-kets[supported-ops] |>
            |Fred>
        
        is-a-day |Monday> => |yes>
        is-a-day |Tuesday> => |yes>
        is-a-day |Wednesday> => |yes>
        is-a-day |Thursday> => |yes>
        is-a-day |Friday> => |yes>
        is-a-day |Saturday> => |yes>
        is-a-day |Sunday> => |yes>
        is-a-day |blah> => |no>
        is-a-day |foo> => |no>
        
        -- filter our input sp to days:
        such-that[is-a-day] (|Monday> + |Tuesday> + |blah> + |Wednesday> + |Thursday> + |Friday> + |Saturday> + |foo> + |Sunday>)
            |Monday> + |Tuesday> + |Wednesday> + |Thursday> + |Friday> + |Saturday> + |Sunday>
    
    see also:

    TODO:
        fix quirk so we don't need literal operator wrappers around function operators.
        eg: is-prime |*> #=> is-prime |_self>

Home