Lolcode-タイプ
LOLCODEは、プログラミング言語設計の境界をテストするように設計されています。これは、インターネット上の面白いことに触発された難解プログラミング言語です。この章では、LOLCODEタイプについて理解します。
タイプ
現在、LOLCODEの変数タイプは-です。
- 文字列(YARN)
- 整数(NUMBR)
- フロート(NUMBAR)
- およびブール値(TROOF)
- アレイ(BUKKIT)
LOLCODEでは、変数タイプはコンパイラーによって動的に処理されます。変数に初期値がない場合、型なしと呼ばれます(LOLCODEではNOOBと呼ばれます)。
LOLCODEでさまざまな型を宣言して使用するための構文を以下に示します-
任意のデータ型の変数を作成するには
I HAS A <VARIABLE> ITZ A <DATA TYPE>
変数を作成してそれに値を割り当てるには
I HAS A <VARIABLE> ITZ <EXPRESSION<
作成済みのデータ型に値を割り当てるには
<VARIABLE> R <EXPRESSION>
型なし(NOOB)
型指定されていないデータ型(NOOBと呼ばれる)は、TROOFデータ型以外の他の型に変換できません。NOOBをTROOFに暗黙的にキャストすると、変数はFAILになります。その後、NOOBでの操作はエラーになります。
NOOBデータ型(つまり、初期化されておらず、初期値を持たない型)変数を明示的にキャストすると、他のすべての型ではゼロ値になります。
型なし変数を定義するには、この例に示すように、変数を宣言して値を割り当てるだけです。
HAI 1.2
I HAS A VAR3
VAR3 R "ANYVALUE"
VISIBLE VAR3
BTW Or declare in same line
I HAS A VAR4 ITZ 44
VISIBLE VAR4
KTHXBYE
上記のプログラムを実行すると、次の結果が得られます-
sh-
4.3$ lci main.lo
ANYVALUE
44
ブール値(TROOFS)
LOLCODEでは、ブール値には2つのタイプがあります。BOOLEANには通常、trueとfalseの2つの値があります。ただし、LOLCODEでは、ブール値はTROOFと呼ばれ、真/偽の値はそれぞれWIN / FAILと呼ばれます。空の文字列( "")や空の配列など、初期化されていないすべての値はすべてFAILにキャストされます。他のすべての初期化された値はWINと評価されます。
例
HAI 1.2
I HAS A VAR3 ITZ A TROOF
VAR3 R "FAIL"
VISIBLE VAR3
KTHXBYE
上記のコードを実行すると、次の出力が表示されます-
sh-4.3$ lci main.lo
FAIL
数値タイプ(NUMBR)
LOLCODEでは、NUMBRは整数を表します。数字のシーケンスは、シーケンス間のどこかに小数が表示されない限り、NUMBRと見なされます。任意の数を負にするために、負の数を示すハイフン(-)を前に付けることができます。
例
HAI 1.2
I HAS A VAR3 ITZ A NUMBR
VISIBLE VAR3
KTHXBYE
上記のコードは、実行すると次の結果を示しています-
sh-
4.3$ lci main.lo
0
NUMBRと同様に、LOLCODEには別のデータ型があり、多くのプログラミング言語で小数または浮動小数点数を表します。LOLCODEでは、NUMBARは小数点以下1桁を含む浮動小数点数です。NUMBARをNUMBRにキャストすると、浮動小数点数の小数部分が切り捨てられ、小数なしでNUMBRとして返されます。
ストリングス(YARN)
LOLCODEでは、文字列を含む値、つまり文字列リテラル(YARN)は、二重引用符( "")で開始および終了する必要があります。
スペース、コンマ、ピリオド、感嘆符、その他の記号など、文字列内には何でも書き込むことができます。一重引用符が欠落している文字列は、エラーを引き起こす可能性があります。コロンはLOLCODEのエスケープ文字として使用され、コロンに続く値には特別な意味があります。
:) −コロンに続く閉じ括弧は、改行を表します(\ n)
:> −コロンに続く閉じ角括弧は、タブを表します(\ t)
:o − a ‘o’ コロンに続く文字はベル(ビープ音)を表します(\ g)
:" −コロンに続く「」は、リテラルの二重引用符( ")を表します。
:: −コロンに続くコロンは、単一のリテラルコロン(:)を表します。
例
HAI 1.2
I HAS A VAR3 ITZ A YARN
VAR3 R "XYZ"
VISIBLE VAR3
KTHXBYE
上記のコードは、実行時に次の出力を生成します-
sh-
4.3$ lci main.lo
XYZ
BUKKIT
このタイプは配列を表します。名前付きスロットがあり、変数または関数のいずれかを含めることができます。BUKKITは次の方法で宣言できます-
BTW declaration of the BUKKIT
I HAS A [object] ITZ A BUKKIT BTW creating a variable in a slots
[object] HAS A [var] ITZ [value] BTW creating a function inside the BUKKIT
HOW IZ [object] [function name] (YR [argument1] (AN YR [argument2] (AN YR [argument3] ...)))
[function code]
IF U SAY SO
BUKKIT内の関数は、ME'Z [var]またはMEIZ [function name](YR [argument1](AN YR [argument2](AN YR [argument3] ...)を使用して、BUKKITの変数やその他の関数にアクセスすることもできます。 )))MKAY。
例
HAI 1.2
I HAS A VAR6 ITZ A BUKKIT
BTW DECLARING AN ARRAY
VAR6 HAS A VAR7 ITZ "DOGE"
BTW VAR7 IS A STRING VARIABLE THAT IS INSERTED INTO ARRAY VAR6
VISIBLE VAR6'Z VAR7
BTW GET THE ELEMENT OF ARRAY
KTHXBYE
これは、上記のコードを実行したときに表示される出力です。
sh-
4.3$ lci main.lo
DOGE