: (find-pair) ( seq target -- pair ) '[ first2 + _ = ] find nip ; : find-pairs ( target seq -- seq pair/f ) [ 2 swap find-pair ] keep ; : find-indices ( seq pair/f -- indices/f ) [ '[ _ index ] map ] when* ; : two-sum ( target seq -- pair ) find-pairs find-indices ;