(DM IF (X) , (SUBST (CADR X) 'FIRST % place 1st arg , , (SUBST (CADDR X) 'SECOND % place 2nd arg , , , (SUBST , , , , (COND , , , , , ((EQUAL (LENGTH X) 4) % 3rd arg? , , , , , , (CADDDR X) , , , , , ,,,) , , , , , (T NIL) % no, just 2 , , , , ,,,) , , , , 'THIRD , , , , '(COND (FIRST SECOND) (T THIRD)) , , , ,,,) , , ,,,) , ,,,) ,,,)