in reply to Re^4: An infix fix
in thread An infix fix

Scheme appears to be behaving as I described, returning operand values. It also has special behavior for no-argument cases. Note that (and 3) is not the same as (and 3 #t), so recursing down to the empty list will not emulate its behavior.

I don't object to defining the zero-arguments case; I just object to using it as the basis for nonzero-argument cases. It is a special case:

sub AND { @_ > 1 ? shift && AND(@_) : @_ ? shift : '#t'; }

Caution: Contents may have been coded under pressure.