Lolcode-types

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

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と呼ばれ、true/false値はそれぞれ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には別のデータ型があり、多くのプログラミング言語で10進数または浮動小数点を表します。 LOLCODEでは、NUMBARは小数点を1つ含むfloatです。 NUMBARをNUMBRにキャストすると、浮動小数点数の小数部分が切り捨てられ、小数点なしでNUMBRとして返されます。

文字列(ヤーン)

LOLCODEでは、文字列を含む値、つまり 文字列リテラル(YARN)は、二重引用符( "")で開始および終了する必要があります。

スペース、コンマ、ピリオド、感嘆符、その他の記号など、文字列内に何でも記述できます。 単一引用符が欠落しているストリングは、エラーの原因になる場合があります。 コロンはLOLCODEでエスケープ文字として使用され、コロンに続く値は特別な意味を持ちます。

  • :)-コロンに続く閉じ括弧は改行(\ n)を表します
  • *:> *-コロンに続く閉じ山括弧はタブを表します(\ t)
  • :o *-コロンに続く *’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は次の方法で宣言することができます-

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]またはME IZ [関数名](YR [argument1](AN YR [argument2](AN YR [argument3] …​ )))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