Lisp-numbers

提供:Dev Guides
移動先:案内検索

LISP-数字

Common Lispは、いくつかの種類の数値を定義します。 number データタイプには、LISPでサポートされるさまざまな種類の数値が含まれます。

LISPでサポートされている番号タイプは-

  • 整数
  • 比率
  • 浮動小数点数 *複素数

次の図は、LISPで使用可能な番号階層とさまざまな数値データ型を示しています-

数値型

LISPのさまざまな数値タイプ

次の表は、LISPで利用可能なさまざまな数値型データを示しています-

Sr.No. Data type & Description
1
  • fixnum*

このデータ型は、大きすぎず、主に-215〜215-1の範囲の整数を表します(マシンに依存)

2

bignum

これらは、LISPに割り当てられたメモリの量によってサイズが制限される非常に大きな数値であり、fixnumの数値ではありません。

3

ratio

分子/分母形式の2つの数値の比率を表します。/関数は、引数が整数の場合、常に結果を比率で生成します。

4

float

非整数の数値を表します。 精度が向上する4つのfloatデータ型があります。

5

complex

  1. cで示される複素数を表します。 実数部と虚数部は、有理数でも浮動小数点数でもかまいません。

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