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
模和餘數之間顯然存在差異,其中一個此處沒有顯示,即餘數是唯一一個將返回不精確值的函式,並且可以接受不精確的引數。