Sometimes you want don't want both your expressions to be evaluated if the first one fails arbitrary example: 0 [ 0 = not ] [ 2 swap / 5 > ] bi and => division by zero error so instead we will use andq 0 [ 0 = not ] [ 2 swap / 5 < ] bi-curry andq => f : andq ( quot quot -- bool ) [ call ] dip [ f ] if ;