Functional-programming-data-types
関数型プログラミング-データ型
データ型は、オブジェクトが持つことができる値の型と、そのオブジェクトに対して実行できる操作を定義します。 データ型は、使用する前に最初に宣言する必要があります。 さまざまなプログラミング言語がさまざまなデータ型をサポートしています。 例えば、
- 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では定義されていません。