Lisp-numbers
LISP-数字
Common Lispは、いくつかの種類の数値を定義します。 number データタイプには、LISPでサポートされるさまざまな種類の数値が含まれます。
LISPでサポートされている番号タイプは-
- 整数
- 比率
- 浮動小数点数 *複素数
次の図は、LISPで使用可能な番号階層とさまざまな数値データ型を示しています-
LISPのさまざまな数値タイプ
次の表は、LISPで利用可能なさまざまな数値型データを示しています-
Sr.No. | Data type & Description |
---|---|
1 |
このデータ型は、大きすぎず、主に-215〜215-1の範囲の整数を表します(マシンに依存) |
2 |
bignum これらは、LISPに割り当てられたメモリの量によってサイズが制限される非常に大きな数値であり、fixnumの数値ではありません。 |
3 |
ratio 分子/分母形式の2つの数値の比率を表します。/関数は、引数が整数の場合、常に結果を比率で生成します。 |
4 |
float 非整数の数値を表します。 精度が向上する4つのfloatデータ型があります。 |
5 |
complex
|
例
main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。
(write (/1 2))
(terpri)
(write ( + (/1 2) (/3 4)))
(terpri)
(write ( + #c( 1 2) #c( 3 -4)))
あなたがコードを実行すると、それは次の結果を返します-
1/2
5/4
#C(4 -2)
数字関数
次の表は、いくつかの一般的に使用される数値関数を説明しています-
Sr.No. | Function & Description |
---|---|
1 |
+, -, *,/ それぞれの算術演算 |
2 |
sin, cos, tan, acos, asin, atan それぞれの三角関数。 |
3 |
sinh, cosh, tanh, acosh, asinh, atanh それぞれの双曲線関数。 |
4 |
exp べき乗関数。 e ^ x ^を計算します |
5 |
expt 指数関数は、ベースとパワーの両方を取ります。 |
6 |
sqrt 数値の平方根を計算します。 |
7 |
log 対数関数。 1つのパラメーターが与えられた後、自然対数を計算します。それ以外の場合、2番目のパラメーターがベースとして使用されます。 |
8 |
conjugate 数値の複素共役を計算します。 実数の場合、数値自体を返します。 |
9 |
abs 数値の絶対値(または大きさ)を返します。 |
10 |
gcd 指定された数値の最大公約数を計算します。 |
11 |
lcm 指定された数値の最小公倍数を計算します。 |
12 |
isqrt 指定された自然数の正確な平方根以下の最大整数を提供します。 |
13 |
floor, ceiling, truncate, round これらの関数はすべて、2つの引数を数値として受け取り、商を返します。 floor はratioより大きくない最大の整数を返します。 ceiling はratioよりも小さい小さい整数を選択します。そして、 round はratioに最も近い整数を選択します。 |
14 |
ffloor, fceiling, ftruncate, fround 上記と同じですが、商を浮動小数点数として返します。 |
15 |
mod, rem 除算の剰余を返します。 |
16 |
float 実数を浮動小数点数に変換します。 |
17 |
rational, rationalize 実数を有理数に変換します。 |
18 |
numerator, denominator 有理数のそれぞれの部分を返します。 |
19 |
realpart, imagpart 複素数の実数部と虚数部を返します。 |
例
main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力します。
(write (/45 78))
(terpri)
(write (floor 45 78))
(terpri)
(write (/3456 75))
(terpri)
(write (floor 3456 75))
(terpri)
(write (ceiling 3456 75))
(terpri)
(write (truncate 3456 75))
(terpri)
(write (round 3456 75))
(terpri)
(write (ffloor 3456 75))
(terpri)
(write (fceiling 3456 75))
(terpri)
(write (ftruncate 3456 75))
(terpri)
(write (fround 3456 75))
(terpri)
(write (mod 3456 75))
(terpri)
(setq c (complex 6 7))
(write c)
(terpri)
(write (complex 5 -9))
(terpri)
(write (realpart c))
(terpri)
(write (imagpart c))
あなたがコードを実行すると、それは次の結果を返します-
15/26
0
1152/25
46
47
46
46
46.0
47.0
46.0
46.0
6
#C(6 7)
#C(5 -9)
6
7