CSC151.01 2009F Functional Problem Solving : Reference

Numeric Values


Type Predicates

(number? val)
Standard Scheme Procedure. Determine if val is a number.
(integer? val)
Standard Scheme Procedure. Determine whether val is an integer.
(rational? val)
Optional Scheme Procedure. Determine whether val can be interpreted as a rational number.
(real? val)
Standard Scheme Procedure. Determine whether val is a real number.
(complex? val)
Optional Scheme Procedure. Determine whether val can be interpreted as a complex number.

Extrema

(max v1 v2)
Standard Scheme Procedure. Find the larger of v1 and v2.
(max v1 v2 ... vn)
Standard Scheme Procedure. Find the largest of v1 through vn.
(min v1 v2)
Standard Scheme Procedure. Find the smaller of v1 and v2.
(min v1 v2 ... vn)
Standard Scheme Procedure. Find the smallest of v1 through vn.

Division-Related Procedures

(quotient dividend divisor)
Standard Scheme Procedure. Find the quotient of dividend and divisor, both of which must be integers. The quotient is the whole part of the result of dividing dividend by divisor.
(remainder dividend divisor)
Standard Scheme Procedure. Compute the remainder after doing whole-number division of dividend by divisor.
(modulo value modulus)
Standard Scheme Procedure. In a number line segmented into modulus-sized sections, gives the offset of value from the start of its section.

Converting Reals to Integers

(floor num)
Standard Scheme Procedure. Find the largest integer less than or equal to num. That is, round down.
(ceiling num)
Standard Scheme Procedure. Find the smallest integer greater than or equal to num. That is, round down.
(truncate num)
Standard Scheme Procedure. Remove any fractional part from num. That is, round toward zero.
(round num)
Standard Scheme Procedure. Round num toward the nearest integer. If the decimal portion of num is greater than 1/2, rounds up. If the decimal portion is less than 1/2, rounds down. If the decimal portion equals 1/2, may round in either direction. (In most implementations, numbers with fractional portions equal to 1/2 round toward the even number.)

Other Predicates

(exact? num)
Standard Scheme Procedure. Determine whether the numeric value num is represented exactly (that is, not approximated).
(inexact? num)
Standard Scheme Procedure. Determine whether the numeric value num is represented inexactly (that is, approximated).
(even? int)
Standard Scheme Procedure. Determine whether the integer value int is even (that is, has a remainder of 0 when divided by 2).
(odd? int)
Standard Scheme Procedure. Determine whether the integer value int is odd (that is, has a remainder of 1 when divided by 2).
(zero? num)
Standard Scheme Procedure. Determine whether the numeric value num is zero.
(positive? num)
Standard Scheme Procedure. Determine whether the numeric value num is positive (greater than zero).
(negative? num)
Standard Scheme Procedure. Determine whether the numeric value num is negative (less than zero).

Converting Representations

(exact->inexact num)
Standard Scheme Procedure. Create an inexact representation of num.
(inexact->exact num)
Standard Scheme Procedure. Create an exact representation of num. (Of course, if num was already approximated, the result, while exact, still approximates whatever num approximated.)

Other Procedures

(expt base power)
Standard Scheme Procedure. Compute basepower.

Creative Commons License

Samuel A. Rebelsky, rebelsky@grinnell.edu

Copyright (c) 2007-9 Janet Davis, Matthew Kluber, Samuel A. Rebelsky, and Jerod Weinman. (Selected materials copyright by John David Stone and Henry Walker and used by permission.)

This material is based upon work partially supported by the National Science Foundation under Grant No. CCLI-0633090. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

This work is licensed under a Creative Commons Attribution-NonCommercial 2.5 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/2.5/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.