Scheme 编程/高等数学
外观
Scheme 始终使用弧度来表示角度,因此其正弦、余弦、正切、反正弦、反余弦和反正切函数都按此操作
> (sin 0)
0.0
> (cos 0)
1.0
> (tan 0)
0.0
> (asin 1)
1.5707963267948965
> (acos 0)
1.5707963267948965
> (atan 1)
0.7853981633974483
Scheme 提供了许多双曲函数,例如双曲正弦、余弦、正切及其反函数。
> (sinh 0)
0.0
> (cosh 0)
1.0
> (tanh 1)
0.7615941559557649
> (asinh 0)
0.0
> (acosh 1)
0.0
> (atanh 0)
0.0
Scheme 提供了 expt
函数来将底数提高到指数。
> (expt 2 10)
1024
Scheme 提供了 sqrt
函数来求一个数的平方根。
> (sqrt 2)
1.4142135623730951
> (expt 2 0.5)
1.4142135623730951
Scheme 提供了 exp
函数来将底数 提高到幂
> (exp 2)
7.3890560989306504
Scheme 提供了 log
函数来求一个数的自然对数
> (log 7.389056)
1.999999986611192
请注意,除了底数 之外,没有内置过程可以求其他底数的对数。相反,你可以输入
> (define logB
(lambda (x B)
(/ (log x) (log B))))
Scheme 提供了一组函数来向上、向下或最接近的整数舍入实数
(floor x)
- 这将返回不超过 x 的最大整数。(ceiling x)
- 这将返回不小于 x 的最小整数。(truncate x)
- 这将返回最接近 x 的整数,该整数不超过 x 的绝对值。(round x)
- 这将按照数学中的惯例将 x 的值舍入到最接近的整数。它甚至在值之间的一半时也有效。(abs x)
- 这将返回 x 的绝对值。
为了执行数学上精确的除法并完成数论者的任务,Scheme 提供了少量特定于除法的函数
(remainder x y)
- 计算将 y 除以 x 的余数(即x/y
的余数)
> (remainder 5 4)
1
> (remainder -5 4)
-1
> (remainder 5 -4)
1
> (remainder -5 -4)
-1
> (remainder x y)
error
> (remainder 2 1)
0
(modulo x y)
- 计算 x 和 y 的模。
> (modulo 5 4)
1
> (modulo -5 4)
3
> (modulo 5 -4)
-3
> (modulo -5 -4)
-1
模和余数之间显然存在差异,其中一个此处没有显示,即余数是唯一一个将返回不精确值的函数,并且可以接受不精确的参数。