Functional-programming-data-types

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

関数型プログラミング-データ型

データ型は、オブジェクトが持つことができる値の型と、そのオブジェクトに対して実行できる操作を定義します。 データ型は、使用する前に最初に宣言する必要があります。 さまざまなプログラミング言語がさまざまなデータ型をサポートしています。 例えば、

  • Cは、char、int、float、longなどをサポートしています。
  • Pythonは、String、List、Tupleなどをサポートしています。

広義には、3つのタイプのデータタイプがあります-

  • 基本的なデータ型-これらは事前定義されたデータ型であり、プログラマーが要件ごとに1つの値のみを保存するために直接使用します。つまり、整数型、文字型、または浮動型です。 例えば-int、char、floatなど。
  • 派生データ型-これらのデータ型は、プログラマーが要件に応じて同じ型の複数の値を保存するように設計された組み込みデータ型を使用して導出されます。 例-配列、ポインター、関数、リストなど。
  • ユーザー定義のデータ型-これらのデータ型は、単一のデータ型にラップされ、要件に応じて同じ型または異なる型、またはその両方の複数の値を格納する組み込みデータ型を使用して導出されます。 例-クラス、構造など

C ++でサポートされるデータ型

次の表は、C ++でサポートされるデータ型の一覧です-

Data Type Size Range
char 1 byte -128 to 127 or 0 to 255
unsigned char 1 byte 0 to 255
signed char 1 byte -128 to 127
int 4 bytes -2147483648 to 2147483647
unsigned int 4 bytes 0 to 4294967295
signed int 4 bytes -2147483648 to 2147483647
short int 2 bytes -32768 to 32767
unsigned short int 2 bytes 0 to 65,535
signed short int 2 bytes -32768 to 32767
long int 4 bytes -2,147,483,648 to 2,147,483,647
signed long int 4 bytes -2,147,483,648 to 2,147,483,647
unsigned long int 4 bytes 0 to 4,294,967,295
float 4 bytes +/- 3.4e +/- 38 (~7 digits)
double 8 bytes +/- 1.7e +/- 308 (~15 digits)
long double 8 bytes +/- 1.7e +/- 308 (~15 digits)

Javaでサポートされるデータ型

次のデータ型はJavaでサポートされています-

Data Type Size Range
byte 1 byte -128 to 127
char 2 byte 0 to 65,536
short 2 byte -32,7688 to 32,767
int 4 byte -2,147,483,648 to 2,147,483,647
long 8 byte -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
float 4 byte -2147483648 to 2147483647
double 8 byte +9.223*1018
Boolean 1 bit True or False

Erlangがサポートするデータ型

このセクションでは、関数型プログラミング言語であるErlangでサポートされているデータ型について説明します。

Erlangは2種類の数値リテラルをサポートしています。 整数*および*浮動小数点数。 2つの整数値を追加する方法を示す次の例を見てください-

-module(helloworld).
-export([start/0]).
start() ->
   io:fwrite("~w",[5+4]).

それは次の出力を生成します-

9

Atom

*atom* は、値を変更できない文字列です。 小文字で始まる必要があり、英数字および特殊文字を含めることができます。 アトムに特殊文字が含まれる場合、単一引用符( ')で囲む必要があります。 よりよく理解するには、次の例を見てください。
-module(helloworld).
-export([start/0]).

start()->
   io:fwrite(monday).

それは次の出力を生成します-

monday

注意-大文字の「M」で原子を「月曜日」に変更してみてください。 プログラムはエラーを生成します。

ブール値

このデータ型は、結果を true または false として表示するために使用されます。 次の例を見てください。 2つの整数を比較する方法を示します。

-module(helloworld).
-export([start/0]).

start() ->
   io:fwrite(5 =< 9).

それは次の出力を生成します-

true

ビット列

型指定されていないメモリの領域を格納するには、ビット文字列が使用されます。 次の例を見てください。 ビット文字列の2ビットをリストに変換する方法を示します。

-module(helloworld).
-export([start/0]).

start() ->
   Bin2 = <<15,25>>,
   P = binary_to_list(Bin2),
   io:fwrite("~w",[P]).

それは次の出力を生成します-

[15,25]

タプル

タプルは、固定数の用語を持つ複合データ型です。 タプルの各用語は、*要素*と呼ばれます。 要素の数は、タプルのサイズです。 次の例は、5つの用語のタプルを定義し、そのサイズを出力する方法を示しています。

-module(helloworld).
-export([start/0]).

start() ->
   K = {abc,50,pqr,60,{xyz,75}} ,
   io:fwrite("~w",[tuple_size(K)]).

それは次の出力を生成します-

5

Map

マップは、可変数のキーと値の関連付けを持つ複合データ型です。 マップ内の各キーと値の関連付けは、関連付けペア*と呼ばれます。 ペアの *key および value 部分は elements と呼ばれます。 アソシエーションペアの数は、マップのサイズと言われています。 次の例は、3つのマッピングのマップを定義し、そのサイズを出力する方法を示しています。

-module(helloworld).
-export([start/0]).

start() ->
   Map1 = #{name => 'abc',age => 40, gender => 'M'},
   io:fwrite("~w",[map_size(Map1)]).

それは次の出力を生成します-

3

List

リストは、可変数の用語を持つ複合データ型です。 リスト内の各用語は要素と呼ばれます。 要素の数は、リストの長さと言われます。 次の例は、5つのアイテムのリストを定義し、そのサイズを印刷する方法を示しています。

-module(helloworld).
-export([start/0]).

start() ->
   List1 = [10,15,20,25,30] ,
   io:fwrite("~w",[length(List1)]).

それは次の出力を生成します-

5

注意-'String’データ型はErlangでは定義されていません。