Skip to content

Comparison Predicates ​

The C comparison functions below always takes two arguments, while the Scheme functions can take an arbitrary number. Also keep in mind that the C functions return one of the Scheme boolean values SCM_BOOL_T or SCM_BOOL_F which are both true as far as C is concerned. Thus, always write scm_is_true (scm_num_eq_p (x, y)) when testing the two Scheme numbers x and y for equality, for example.

Scheme Procedure: = ​

C Function: scm_num_eq_p (x, y) ​

Return #t if all parameters are numerically equal.

Scheme Procedure: < ​

C Function: scm_less_p (x, y) ​

Return #t if the list of parameters is monotonically increasing.

Scheme Procedure: > ​

C Function: scm_gr_p (x, y) ​

Return #t if the list of parameters is monotonically decreasing.

Scheme Procedure: <= ​

C Function: scm_leq_p (x, y) ​

Return #t if the list of parameters is monotonically non-decreasing.

Scheme Procedure: >= ​

C Function: scm_geq_p (x, y) ​

Return #t if the list of parameters is monotonically non-increasing.

Scheme Procedure: zero? z ​

C Function: scm_zero_p (z) ​

Return #t if z is an exact or inexact number equal to zero.

Scheme Procedure: positive? x ​

C Function: scm_positive_p (x) ​

Return #t if x is an exact or inexact number greater than zero.

Scheme Procedure: negative? x ​

C Function: scm_negative_p (x) ​

Return #t if x is an exact or inexact number less than zero.