Lolcode - Kurzanleitung

LOLCODE ist eine esoterische Programmiersprache, die von den lustigen Dingen im Internet inspiriert ist. Es wurde entwickelt, um die Grenzen des Entwurfs von Programmiersprachen zu testen.

In diesem Kapitel werden Sie mit dem Einrichten der lokalen Umgebung für LOLCODE, der Installation unter Windows und der Online-Ausführung des Skripts unter Tutorialspoint-codingground vertraut gemacht.

Einrichten der lokalen Umgebung

Der LOLCODE-Interpreter ist in C-Sprache geschrieben. Es interpretiert den in LOLCODE geschriebenen Code auf mehreren Plattformen. Der LOLCODE-Interpreter ist als lci bekannt und steht für LOLCODE Interpreter.

Bitte beachten Sie, dass LOLCODE die direkte Installation von Interpreter nur für MAC-Betriebssysteme offiziell unterstützt. Um LOLCODE in Ihrem Betriebssystem zu installieren, müssen Sie die folgenden Schritte ausführen:

  • Drücken Sie Befehlstaste + Leertaste und geben Sie ein Terminal und drücke enter/return Schlüssel
  • In der Terminal-App ausführen
  • $ git Klon https://github.com/justinmeza/lci.git
  • $ cd lci
  • $ cmake.
  • $ make && make install

Installation unter Windows

Wenn Sie LOLCODE unter Windows installieren müssen, führen Sie die folgenden Schritte aus:

  • Fügen Sie zuerst MinGW und Python zu Ihrem Umgebungsvariablenpfad hinzu. Klicken Sie dazu mit der rechten Maustaste aufMy Computer, wählen Properties, dann wählen Sie Advanced system settings. Wählen Environment Variables. Wählen Sie in diesem Feld die Option ausPATH Variable und dann klicken Edit.

  • Fügen Sie nun am Ende dieses Pfads "; C: \ MinGW \ bin; C: \ Python32" hinzu.

  • Öffnen Sie als nächstes die Command Prompt und navigieren Sie beispielsweise mit dem Befehl "cd" zum Projektverzeichnis.

  • Führen Sie das Skript install.py aus.

Skript online mit TutorialsPoint ausführen - Codingground

Verwenden Sie die von TutorialsPoint bereitgestellte Codingground- Plattform, um Ihre Skripte einfach und schnell auszuführen . Gehen Sie dazu auf den folgenden Link, um Ihre Skripte online auszuführen -

https://www.tutorialspoint.com/execute_lolcode_online.php

LOLCODE hat eine andere Syntax als andere Programmiersprachen, ist jedoch leichter zu merken. Dieses Kapitel enthält die grundlegende Syntax von LOLCODE.

Konstruiert

Die LOLCODE-Konstrukte sind Slangwörter. Die folgende Tabelle zeigt die alphabetische Liste der bisher implementierten Konstrukte -

Sr.Nr. Konstruieren & Verwenden
1

BTW

Es beginnt ein einzeiliger Kommentar.

2

DOWN <variable>!!<times>

Dies entspricht Variable = Variable - Zeiten. Beachten Sie, dass "times" eine reine Spracherweiterung ist.

3

GIMMEH <variable>

Dies repräsentiert die Eingabeanweisung.

4

GTFO

Dies ist ähnlich wie break in anderen Sprachen und bietet eine Möglichkeit, aus einer Schleife auszubrechen.

5

HAI

Dies entspricht main ()Funktion in anderen Sprachen. Es ist der Programmeinstiegspunkt in LOLCODE.

6

HEREZ <label>

Dies ist eine weitere wut-only-Spracherweiterung und deklariert ein Label zur Verwendung mit SHOO

7

I HAS A <type> <variable>

Dies deklariert eine Variable dieses Typs.

In LOLCODE sind drei Typen integriert:

  • NUMBAH (int)
  • DECINUMBAH (doppelt)
  • WORDZ (std :: string)

Beachten Sie, dass Typen eine reine Spracherweiterung sind.

8

IM IN YR LOOP

Dies startet eine Endlosschleife. Die einzige Möglichkeit, die Schleife zu verlassen, ist die Verwendung von GTFO. Entspricht für(;;) in anderen Sprachen

9

IZ <expr1> <operator> <expr2>?: Conditional structure

Dies ähnelt dem Operator in anderen Sprachen. Betreiber ist einer von: GRÖSSER ALS, KLEINER ALS, SAEM AS. Notiere dass der ? am Ende ist optional.

10

KTHX

Es endet ein Block. Entspricht}

11

KTHXBAI

Dies beendet ein Programm

12

NOWAI

Dies entspricht sonst

13

PURR <expr>

Dadurch wird das Argument auf dem Bildschirm gedruckt, gefolgt von einer neuen Zeile. Es ist eine Nur-Sprach-Erweiterung.

14

RELSE

Dies entspricht else (if)

15

SHOO

Dies ist eine weitere Nur-Nur-Sprache-Spracherweiterung, die entspricht goto (der Horror!)

16

UP <variable>!!<times>

Dies entspricht Variablen = Variable + Zeiten. Hier ist "times" eine reine Spracherweiterung.

17

VISIBLE <expr>

Dies druckt das Argument auf dem Bildschirm. Beachten Sie, dass hierdurch keine neue Zeile gedruckt wird.

18

YARLY

Dies bezeichnet den Beginn des "wahren" bedingten Blocks

Einige Beispiele für Slang-Begriffe in LOLCODE sind -

  • HAI ist hallo
  • KTHXBYE ist okay, danke, tschüss
  • Übrigens ist übrigens
  • OBTW ist übrigens oh
  • TLDR ist zu lang; habe nicht gelesen

Leerzeichen

In den meisten Programmiersprachen dürfen Schlüsselwörter oder Token keine Leerzeichen enthalten. In einigen Sprachen werden jedoch Leerzeichen in Token verwendet, um sie zu unterscheiden.

Komma

Das Komma verhält sich in den meisten Sprachen wie ein Zeilenumbruch-Schlüsselwort, z. \n in Java und C. Sie können in LOLCODE viele Befehle in einer einzigen Zeile schreiben, vorausgesetzt, Sie trennen sie durch ein Komma (,).

Drei Perioden (…)

Mit den drei Punkten (…) können Sie mehrere Codezeilen zu einer einzigen Zeile oder einem einzelnen Befehl kombinieren, indem Sie (...) am Ende der Zeile einfügen. Dadurch behandelt der Compiler den Inhalt der nächsten Zeile nur als den Inhalt der vorherigen Zeile. Unendliche Codezeilen können als ein einziger Befehl zusammen geschrieben werden, solange jede Zeile mit drei Punkten endet.

Ein Kommentar wird durch einen Zeilenumbruch beendet. Bitte beachten Sie, dass die Zeilenfortsetzung (...) und (,) nach dem Kommentar (BTW) vom lci ignoriert werden.

Bemerkungen

Einzeilige Kommentare werden geschrieben, gefolgt vom Schlüsselwort BTW. Sie können an einer beliebigen Stelle innerhalb eines Programmkörpers auftreten: Sie können sich in der ersten Programmzeile, zwischen dem Programm, zwischen einer Zeile oder am Ende eines Programms befinden.

All dies sind gültige einzeilige Kommentare

I HAS A VAL ITZ 19      BTW VAL = 19
I HAS A VAL ITZ 19,   BTW VAL = 19
I HAS A VAL ITZ 14
BTW VAR = 14

In LOLCODE werden mehrzeilige Kommentare gefolgt von OBTW geschrieben und mit TLDR beendet.

Dies ist ein gültiger mehrzeiliger Kommentar -

I HAS A VAL ITZ 51
   OBTW this is a comment
      No it’s a two line comment
      Oops no.. it has many lines here
   TLDR

Dateierstellung

Ein LOLCODE-Programm beginnt mit dem Schlüsselwort HAI und sollte mit KTHXBYE enden. Da LOLCODE die Kurzsprache verwendet, steht HAI im Grunde genommen für Hi und KTHXBYE kann als erinnert werden“Ok, thanks, bye ”.

Beispiel

HAI 1.2
I HAS A NAME
VISIBLE "NAME::"!
GIMMEH NAME
VISIBLE "tutorialsPoint " NAME "!"
KTHXBYE

Wie in jeder anderen Programmiersprache können Sie mit LOLCODE Variablen verschiedener Typen definieren. In diesem Kapitel werden Sie mit der Arbeit mit Variablen in LOLCODE vertraut gemacht.

Umfang der Variablen

Der Bereich einer Variablen ist lokal für die Funktion oder den Programmblock, dh eine in einem Bereich definierte Variable kann in keinem anderen Bereich desselben Programms aufgerufen werden. Auf Variablen kann erst zugegriffen werden, nachdem sie deklariert wurden.

Bitte beachten Sie, dass es in LOLCODE keinen globalen Variablenbereich gibt.

Regeln der Namensgebung

Variablennamen werden normalerweise als Bezeichner bezeichnet. Hier sind einige der Konventionen zum Benennen von Variablen in LOLCODE -

  • Variablenbezeichner können in Großbuchstaben oder Kleinbuchstaben (oder einer Mischung aus beiden) angegeben werden.

  • Sie können nur mit einem Buchstaben beginnen und können dann von anderen Buchstaben, Zahlen und Unterstrichen gefolgt werden.

  • LOLCODE erlaubt keine Verwendung von Leerzeichen, Bindestrichen oder anderen Symbolen beim Benennen einer Variablen.

  • Bei Variablenkennungen wird zwischen Groß- und Kleinschreibung unterschieden.

Hier sind einige der Regeln für gültige und ungültige Namen für Variablen in LOLCODE−

  • Der Name sollte immer mit einem Alphabet beginnen. Zum Beispiel,name, Name sind gültig.

  • Der Name einer Variablen darf nicht mit einer Ziffer beginnen. Zum Beispiel,2var ist ungültig.

  • Der Name einer Variablen darf nicht mit einem Sonderzeichen beginnen.

  • Eine Variable kann _ oder eine Ziffer an einer beliebigen Stelle in ihrem Namen enthalten, außer am Startindex. Zum Beispiel,name2_m ist ein gültiger Name.

Einige Beispiele für gültige Namen in LOLCODE sind unten aufgeführt -

HAI 1.2
I HAS A food ITZ "111.00033"
I HAS A food2 ITZ "111"
I HAS A fo_od ITZ "1"
VISIBLE food
VISIBLE food2
VISIBLE fo_od
KTHXBYE

Alle Deklarationsanweisungen im obigen Code sind gültig und erzeugen bei der Ausführung die folgende Ausgabe:

sh-4.3$ lci main.lo
111.00033
111
1

Einige Beispiele für ungültige Anweisungen und ihre Ausgabe sind unten angegeben -

Beispiel 1

HAI 1.2
I HAS A 2food ITZ "111.00033"
KTHXBYE

Der obige Code gibt die folgende Ausgabe aus, wenn Sie ihn ausführen -

sh-
4.3$ lci main.lo
Line 2: Expected: identifier; Got: int(2).

Beispiel 2

HAI 1.2
I HAS A _food ITZ "111.00033"
KTHXBYE

Der obige Code gibt die folgende Ausgabe aus, wenn Sie ihn ausführen -

sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: _food ITZ "111.00033".

Beispiel 3

HAI 1.2
I HAS A f$ood ITZ "111.00033"
KTHXBYE

Der obige Code gibt die folgende Ausgabe aus, wenn Sie ihn ausführen -

sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: $ood ITZ "111.00033".

Deklaration und Zuordnung von Variablen

Zu declareAls Variable bietet LOLCODE ein Schlüsselwort "I HAS A", gefolgt vom Variablennamen. Nachfolgend finden Sie die Syntax zum Deklarieren einer Variablen.

I HAS A VAR BTW VAR is empty now, You can use any name instead of var

Zu assignWenn die Variable einen Wert in derselben Anweisung hat, können Sie dem Variablennamen mit „ITZ“ folgen und dann den Wert angeben, den Sie zuweisen möchten. Verwenden Sie die folgende Syntax, um einer Variablen einen Wert zuzuweisen:

<variable> R <expression>

Beispiel

VAR R "Green"         BTW VAR is now a YARN and equals "Green"
VAR R 30              BTW VAR is now a NUMBR and equals 30

Du kannst auch declare und assign Variablen gleichzeitig mit der folgenden Syntax -

I HAS A VAR ITZ VALUE

Beispiel

I HAS A NAME ITS “TUTORIALS POINT”

Beispiel

HAI 1.2
BTW this is how we declare variables
I HAS A food
I HAS A bird

BTW this is how we assign variables
food R 1
bird R 5

BTW this is how initialize variables
I HAS A biz ITZ "OMG!"
VISIBLE food
VISIBLE biz
VISIBLE bird
KTHXBYE

Das obige Programm zeigt die Deklaration von Variablen und druckt sie aus. Die Ausgabe ist -

sh-
4.3$ lci main.lo
1
OMG!
5

Typ Casting

Um einen Wert eines Typs in einen anderen Typ zu konvertieren, verwenden wir Typumwandlung. Durch das Umwandeln einer NUMBAR in eine NUMBR wird der Dezimalteil der Gleitkommazahl abgeschnitten. Wenn Sie eine NUMBAR in ein YARN umwandeln (z. B. durch Drucken), wird die Ausgabe auf die Standard-2-Dezimalstellen gekürzt.

Beispiel

HAI 1.2
I HAS A food ITZ "111.00033"
VISIBLE food

BTW this is how we do type casting
MAEK food A NUMBAR
VISIBLE food
KTHXBYE

Die obige Codezeile erzeugt die folgende Ausgabe:

sh-4.3$ lci main.lo
111.00033
111.00033

Alle in einem LOLCODE-Programm deklarierten Variablen sind lokale Variablen, und in dieser Sprache gibt es keinen globalen Bereich für eine Variable.

LOLCODE wurde entwickelt, um die Grenzen des Programmiersprachenentwurfs zu testen. Es ist eine esoterische Programmiersprache, die von den lustigen Dingen im Internet inspiriert ist. Dieses Kapitel vermittelt Ihnen ein Verständnis der LOLCODE-Typen.

Typen

Derzeit sind die Variablentypen in LOLCODE -

  • Saiten (YARN)
  • ganze Zahlen (NUMBR)
  • schwimmt (NUMBAR)
  • und Boolesche Werte (TROOF)
  • Arrays (BUKKIT)

In LOLCODE wird der Variablentyp vom Compiler dynamisch behandelt. Wenn eine Variable keinen Anfangswert hat, wird sie als untypisiert bezeichnet (in LOLCODE als NOOB bezeichnet).

Die Syntax zum Deklarieren und Verwenden verschiedener Typen in LOLCODE ist unten dargestellt:

So erstellen Sie eine Variable eines beliebigen Datentyps

I HAS A <VARIABLE> ITZ A <DATA TYPE>

So erstellen Sie eine Variable und weisen ihr einen Wert zu

I HAS A <VARIABLE> ITZ <EXPRESSION<

So weisen Sie einem bereits erstellten Datentyp einen Wert zu

<VARIABLE> R <EXPRESSION>

Untyped (NOOB)

Der untypisierte Datentyp (bekannt als NOOB) kann nur in einen TROOF-Datentyp in einen anderen Typ konvertiert werden. Das implizite Casting eines NOOB in TROOF macht die Variable FAIL. Danach führt jede Operation an einem NOOB zu einem Fehler.

Explizite Casts eines NOOB-Datentyps (dh der Typen, die nicht initialisiert sind und keinen Anfangswert haben) ergeben für alle anderen Typen Nullwerte.

Um eine untypisierte Variable zu definieren, deklarieren Sie einfach eine Variable und weisen Sie einen Wert zu, wie in diesem Beispiel gezeigt.

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

Wenn Sie das obige Programm ausführen, finden Sie das folgende Ergebnis:

sh-
4.3$ lci main.lo 
ANYVALUE
44

Boolesche Werte (TROOFS)

In LOLCODE gibt es zwei Arten von Booleschen Werten. BOOLEAN hat im Allgemeinen zwei Werte - wahr und falsch. In LOLCODE ist der Boolesche Wert jedoch als TROOF bekannt, und die True / False-Werte sind als WIN / FAIL bekannt. Alle nicht initialisierten Werte wie eine leere Zeichenfolge ("") oder ein leeres Array werden in FAIL umgewandelt. Alle anderen initialisierten Werte werden als WIN ausgewertet.

Beispiel

HAI 1.2
I HAS A VAR3 ITZ A TROOF
VAR3 R "FAIL"
   VISIBLE VAR3
KTHXBYE

Sie können die folgende Ausgabe sehen, wenn Sie den obigen Code ausführen -

sh-4.3$ lci main.lo
FAIL

Numerische Typen (NUMBR)

In LOLCODE steht ein NUMBR für eine ganze Zahl. Jede Ziffernfolge wird als NUMBR betrachtet, es sei denn, irgendwo zwischen der Folge erscheint eine Dezimalstelle. Um eine Zahl negativ zu machen, kann ein Bindestrich (-) vorangestellt werden, der eine negative Zahl kennzeichnet.

Beispiel

HAI 1.2
I HAS A VAR3 ITZ A NUMBR
   VISIBLE VAR3
KTHXBYE

Der obige Code zeigt Ihnen das folgende Ergebnis, wenn Sie es ausführen

sh- 
4.3$ lci main.lo
0

Ähnlich wie NUMBR hat LOLCODE einen anderen Datentyp, der in vielen Programmiersprachen eine Dezimalzahl oder einen Gleitkommawert darstellt. In LOLCODE ist eine NUMBAR ein Gleitkomma mit einem Dezimalpunkt. Durch das Umwandeln einer NUMBAR in eine NUMBR wird der Dezimalteil der Gleitkommazahl abgeschnitten und als NUMBR ohne Dezimalzahl zurückgegeben.

Saiten (Garn)

In LOLCODE sollte ein Wert, der Zeichenfolgen enthält, dh Zeichenfolgenliterale (YARN), mit doppelten Anführungszeichen ("") beginnen und enden.

Alles kann in die Zeichenfolge geschrieben werden, z. B. Leerzeichen, Komma, Punkt, Ausrufezeichen oder ein anderes Symbol. Eine Zeichenfolge, in der ein einfaches Anführungszeichen fehlt, kann einen Fehler verursachen. Doppelpunkte werden in LOLCODE als Escape-Zeichen verwendet, und jeder Wert nach einem Doppelpunkt erhält eine besondere Bedeutung.

  • :) - Eine schließende Klammer nach einem Doppelpunkt steht für eine neue Zeile (\ n).

  • :> - Eine schließende Klammer nach einem Doppelpunkt steht für eine Registerkarte (\ t).

  • :o - A. ‘o’ Das Zeichen nach einem Doppelpunkt steht für eine Glocke (Piepton) (\ g).

  • :" - Ein "nach einem Doppelpunkt steht für ein wörtliches doppeltes Anführungszeichen (")

  • :: - Ein Doppelpunkt nach einem Doppelpunkt steht für einen einzelnen wörtlichen Doppelpunkt (:)

Beispiel

HAI 1.2
I HAS A VAR3 ITZ A YARN
VAR3 R "XYZ"
   VISIBLE VAR3
KTHXBYE

Der oben angegebene Code erzeugt bei der Ausführung die folgende Ausgabe:

sh-
4.3$ lci main.lo 
XYZ

BUKKIT

Dieser Typ repräsentiert ein Array. Es hat Slots benannt, die entweder Variablen oder Funktionen enthalten können. Ein BUKKIT kann folgendermaßen deklariert werden:

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

Eine Funktion in einem BUKKIT kann auch mit ME'Z [var] oder ME IZ [Funktionsname] (YR [Argument1] (AN YR [Argument2] (AN YR [Argument3] ...) auf Variablen und andere Funktionen des BUKKIT zugreifen. ))) MKAY.

Beispiel

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

Dies ist die Ausgabe, die Sie finden, wenn Sie den oben angegebenen Code ausführen -

sh-
4.3$ lci main.lo 
DOGE

Operatoren spielen eine wichtige Rolle bei der Ausführung verschiedener Operationen an Variablen. Dieses Kapitel enthält verschiedene Operatoren in LOLCODE und deren Verwendung.

Betreiber

Mathematische Operatoren hängen von einer Präfixnotation ab, dh der Notation, die vor dem Operanden steht. Wenn allen Operatoren die Anzahl der Argumente oder Operanden bekannt ist, sind keine Gruppierungsmarkierungen erforderlich. In Fällen, in denen Operatoren keine festen Argumente oder Operanden haben, wird die Operation mit MKAY geschlossen.

Ein MKAY darf nicht verwendet werden, wenn es mit dem Ende der Anweisung übereinstimmt. In solchen Fällen sollte das Schlüsselwort EOL verwendet werden. Verwenden Sie die folgende Syntax, um unäre mathematische Operatoren zu verwenden:

<operator> <expression>

Das Schlüsselwort AN kann optional verwendet werden, um Argumente zu trennen und eine einzelne Operation auf mehr als einen Operanden anzuwenden, sodass ein binärer Operatorausdruck die folgende Syntax hat:

<operator> <expression1> AN <expression2>

Jeder Ausdruck, der einen Operator mit unendlich vielen Argumenten enthält, kann mit der folgenden Syntax ausgedrückt werden:

<operator> <expression1> [[AN <expression2>] AN <expression3> ...] MKAY

Mathematik

Im Folgenden sind die grundlegenden mathematischen Operationen in LOLCODE aufgeführt:

SUM OF <a> AN <b>      BTW This is a plus + operator
DIFF OF <a> AN <n>     BTW This is a minus - operator
PRODUKT OF <a> AN <n>  BTW This is a multiply operator *
QUOSHUNT OF <a> AN <n> BTW This is a divide operator
MOD OF <a> AN <n>      BTW This is a modulo operator
BIGGR OF <a> AN <n>    BTW This is a max operator
SMALLR OF <a> AN <n>   BTW This is a min operator

<a> und <b> können oben jeweils eindeutige Ausdrücke sein, sodass mathematische Operatoren unbegrenzt verschachtelt und gruppiert werden können.

Die Mathematik wird unter Berücksichtigung von Argumenten als ganzzahlige Mathematik in Gegenwart von zwei NUMBRs ausgeführt. Wenn jedoch einer der Ausdrücke NUMBAR ist, werden Operationen als Gleitkommaoperationen betrachtet.

Beispiel

HAI 1.2
   I HAS A m ITZ 4
   I HAS A n ITZ 2
VISIBLE SUM OF m AN n      BTW +
VISIBLE DIFF OF m AN n     BTW -
VISIBLE PRODUKT OF m AN n  BTW *
VISIBLE QUOSHUNT OF m AN n BTW /
VISIBLE MOD OF m AN n      BTW modulo
VISIBLE BIGGR OF m AN n    BTW max
VISIBLE SMALLR OF m AN n   BTW min
KTHXBYE

Der obige Code erzeugt die folgende Ausgabe, wenn Sie ihn ausführen -

sh-
4.3$ lci main.lo
6
2
8
2
0
4
2

Wichtige Punkte -

Berücksichtigen Sie die folgenden wichtigen Punkte im Zusammenhang mit der Arbeit mit mathematischen Operatoren in LOLCODE−

  • Wenn eines oder beide Argumente in einem Ausdruck YARN sind, werden sie als NUMBARs behandelt.

  • Wenn eines der Argumente nicht sicher intern in einen numerischen Typ umgewandelt werden kann, schlägt dies mit einem Fehler fehl

Boolescher Wert

Boolesche Operatoren werden auf Werte angewendet, die wahr oder falsch sein können. Boolesche Operatoren, die an TROOFs arbeiten, sind wie folgt:

BOTH OF <m> AN <n>             BTW its and operation: WIN if m = WIN and n = WIN
EITHER OF <m> AN <n>           BTW its or operation: FAIL iff m = FAIL, n = FAIL
WON OF <m> AN <n>              BTW its xor operation: FAIL if m = n
NOT <m>                        BTW its an unary negation: WIN if m = FAIL
ALL OF <m> AN <n> ... MKAY     BTW it will take infinite arguments and apply AND
ANY OF <m> AN <n> ... MKAY     BTW it will take infinite arguments and apply OR.

Bitte beachten Sie, dass <m> und <n> in der obigen Ausdruckssyntax automatisch als TROOF-Werte umgewandelt werden, wenn sie nicht bereits TROOF-Werte sind.

Vergleich

Wenn Sie zwei oder mehr Operanden in LOLCODE vergleichen möchten, können Sie dies mit einer der folgenden Methoden tun:

Methode 1

Sie können zwei binäre Operanden mit Gleichheitsoperatoren vergleichen. Die Syntax wird unten gezeigt -

BOTH SAEM <m> AN <n>   BTW this will return WIN if m is equal to n
DIFFRINT <m> AN <n>    BTW this will return WIN if m is not equal to n

Methode 2

Sie können vergleichen, ob beide Werte vom Typ NUMBRs sind. Denken Sie daran, dass wenn einer der Werte NUMBARs sind, diese als Gleitkommawerte verglichen werden.

Methode 3

Sie können den Vergleich auch mit den Minimal- und Maximaloperatoren durchführen. Die Syntax wird unten gezeigt -

BOTH SAEM <m>   AN BIGGR OF <m> AN <n>

BOTH SAEM <m>  AN SMALLR OF <m> AN <n>
DIFFRINT <m>  AN SMALLR OF <m> AN <n>
DIFFRINT <m> AN BIGGR OF <m> AN <n>

Example

HAI 1.2
I HAS A VAR11 ITZ 7
BOTH SAEM VAR11 SMALLR OF VAR11 AN 8, O RLY?
YA RLY
VISIBLE "TRUE"
NO WAI
VISIBLE "FALSE"
OIC
KTHXBYE

Sie können die folgende Ausgabe sehen, wenn Sie den angegebenen Code ausführen -

sh-
4.3$ lci main.lo

TRUE

Verkettung von Werten

Mit LOLCODE können Sie mit dem Operator SMOOSH… MKAY unendlich viele YARNs explizit verketten. Zur Verkettung können mehrere Argumente mit dem getrennt werdenAN Operator.

Beispiel

HAI 1.2
I HAS A VAR1 ITZ A YARN
VAR1 R "TRUE"

I HAS A VAR2 ITZ A YARN
VAR2 R "ANOTHER TRUE"

I HAS A VAR3 ITZ A YARN
VAR3 R "ONE MORE TRUE"
VISIBLE SMOOSH VAR1 " " VAR3 " " VAR2 MKAY
KTHXBYE

Der oben angegebene Code führt bei der Ausführung zu folgendem Ergebnis:

sh-
4.3$ lci main.lo

TRUE ONE MORE TRUE ANOTHER TRUE

Typ Casting

Operatoren, die an bestimmten Typen arbeiten, wandeln implizit die Werte eines Typs um oder konvertieren sie sicher in einen anderen Typ. Wenn der Wert nicht sicher in einen anderen Typ konvertiert werden kann, führt dies zu einem Fehler.

Der Wert eines Ausdrucks kann mit dem binären MAEK-Operator explizit umgewandelt oder in einen anderen Typ konvertiert werden. Die Syntax von MAEK Operator lautet -

MAEK <expression> A <type>

Dabei kann <Typ> TROOF, YARN, NUMBR, NUMBAR oder NOOB sein.

Um eine Variable explizit in einen anderen Typ umzuwandeln, kann eine normale Zuweisungsanweisung mit dem MAEK-Operator verwendet werden, oder eine Umwandlungszuweisungsanweisung kann wie folgt verwendet werden:

<Any_variable> IS NOW A <type>  BTW this code will be equal to
<Any_variable> R MAEK <variable> A <type>

Beispiel

HAI 1.2
I HAS A food ITZ "111.00033"
VISIBLE food

BTW this is how we do type casting
MAEK food A NUMBAR
VISIBLE food
KTHXBYE

Der obige Code erzeugt die folgende Ausgabe -

sh-4.3$ lci main.lo
111.00033
111.00033

In diesem Kapitel erfahren Sie, wie Sie einen Wert über das LOLCODE-Terminal eingeben und auf dem Terminal ausgeben.

E / A vom Terminal

Sie können das Schlüsselwort VISIBLE verwenden, um etwas in LOLCODE zu drucken. VISIBLE ist eine Funktion, die eine unendliche Anzahl von Zeichen als Eingabe verwenden und alle auf einmal drucken kann, indem sie intern verkettet und in Zeichenfolgen oder YARN konvertiert werden.

Die Funktion VISIBLE endet oder endet durch ein Trennzeichen, das entweder ein Zeilenende oder ein Komma ist.

Die Ausgabe wird vom Compiler automatisch mit einem Wagenrücklauf beendet. Wenn das letzte Token mit einem Ausrufezeichen (!) Beendet wird, wird der zurückgegebene Wagen von diesem Symbol überschrieben.

VISIBLE <any_expression> [<any_expression> ...][!]

Bitte beachten Sie, dass es in LOLCODE derzeit keinen definierten Standard zum Drucken einiger Daten in eine Datei gibt.

Um Eingaben vom Benutzer zu erhalten, wird das Schlüsselwort GIMMEH verwendet. Es ist eine Funktion, die eine beliebige Anzahl von Variablen als Eingabe verwenden kann. Es nimmt YARN als Eingabe und speichert den Wert in einer bestimmten Variablen.

GIMMEH <any_variable>

Beispiel

HAI 1.2
   I HAS A VAR ITZ A YARN BTW DECLARE A VARIABLE FOR LATER USE
   VISIBLE "TYPE SOMETHING AND ENTER"
   GIMMEH VAR BTW GET INPUT (STRING) INTO VARIABLE
   VISIBLE VAR
KTHXBYE

Wenn dieser Code ausgeführt wird, werden Sie aufgefordert, eine Nummer einzugeben, und die Nummer wird automatisch in die nächste Zeile zurückgedruckt. Wenn Sie diesen Code ausführen, wird die folgende Ausgabe gedruckt:

sh-
4.3$ lci main.lo

TYPE SOMETHING AND ENTER
67

67

Mit LOLCODE können Sie den Programmfluss durch verschiedene Anweisungen steuern. In diesem Kapitel werden verschiedene Arten von Anweisungen erläutert, die in LOLCODE verfügbar sind.

Ausdrucksanweisungen

Ein Ausdruck ohne Zuordnung, dh einfach das Aufrufen einer mathematischen Operation oder einer Funktion, ist eine rechtliche Aussage in LOLCODE. Sobald der Ausdruck ausgewertet ist, wird sein Endwert in die temporäre Variable IT gestellt. Der Wert der IT bleibt im lokalen Bereich und bleibt bestehen, bis er das nächste Mal durch einen Ausdruck ersetzt wird.

Zuweisungsanweisungen

Zuweisungsanweisungen werden verwendet, um die Ausgabe eines Ausdrucks einer bestimmten Variablen zuzuweisen. Sie haben im Allgemeinen die Form -

<any_variable> <assignment operator> <any expression>

Bitte beachten Sie, dass Sie eine Variable im Ausdruck verwenden können, noch bevor sie zugewiesen wird.

Bedingte Anweisungen

Wenn-Dann-Anweisungen

Die if-then-Anweisung ist eine sehr einfache Operation, die an der IT-Variablen arbeitet. Es ähnelt if-else-Anweisungen in anderen Programmiersprachen wie C und Java.

Es gibt vier Schlüsselwörter, um die if-then-Anweisungen anzuwenden.

  • O RLY?
  • YA RLY
  • KEIN WAI
  • OIC

Die allgemeine Form ist -

<any_expression>
O RLY?
   YA RLY
      <code to execute if above condition is true>
   NO WAI
      <code to execute in this block>
OIC

Alle obigen Anweisungen können in derselben Zeile geschrieben werden, die durch Kommas wie - getrennt ist.

BOTH SAEM NAMES AN "Name", O RLY?
   YA RLY, VISIBLE "My name is ABCD"
   NO WAI, VISIBLE "Your name is ABCD"
 OIC

Während der Verwendung der if-then-Anweisungen kann ein optionales MEBBE <beliebiger Ausdruck> zwischen den Blöcken YA RLY und NO WAI verwendet werden.

Wenn der <beliebige Ausdruck> nach MEBBE True (WIN) ist, wird dieser Block ausgeführt. Andernfalls wird der Block bis zu den nächsten MEBBE-, NO WAI- oder OIC-Anweisungen übersprungen, wenn dieser Ausdruck falsch ist.

Beispiel

<any expression>
O RLY?
   YA RLY
      <code to be executed if true>
   MEBBE <expression>
      <code to be executed mebbe is true>
   MEBBE <expression>
      <code to be executed mebbe is true>
   NO WAI
      <code to be executed if above are false>
OIC

Beispiel

BOTH SAEM NAMES AN "NAME"
O RLY?
   YA RLY, VISIBLE "YOUR NAME IS ABCD"
   MEBBE BOTH SAEM ANIMAL AN "OUR NAME IS ABCD"
   VISIBLE "NO ABCD"
OIC

Fallaussagen

In LOLCODE das Schlüsselwort 'WTF?' ähnelt dem Umschalten in vielen anderen Sprachen. Das Schlüsselwort WTF? nimmt IT als Ausdruckswert zum Vergleich. Um WTF zu verwenden, wird von OMG ein Vergleichsblock geöffnet, der ein Literal und kein Ausdruck sein sollte.

Bitte denken Sie daran, dass jedes Literal eindeutig sein muss, ähnlich wie in anderen Sprachen.

Der OMG-Block muss durch eine GTFO-Anweisung beendet werden. Wenn ein OMG-Block nicht von einem GTFO beendet wird, wird der nächste OMG-Block ausgeführt, bis GTFO erreicht ist.

Wenn keines der Literale als wahr ausgewertet wird, wird der Standardfall von OMGWTF angegeben.

WTF?
   OMG <any value to compare>
      <code block to execute if expression is satisfied>
   OMG <any value to compare>
      <code block to execute if expression is satisfied>
   OMGWTF
      <code block to execute as a default case>
OIC
NAME, WTF?
   OMG "A"
      VISIBLE "ABCD"
   GTFO
   OMG "E"
      VISIBLE "EFGH"
   GTFO
   OMGWTF
      VISIBLE "ZYXW"
   OIC

Die Ausgabeergebnisse des obigen Codes sind -

"E":

EFGH

In Programmiersprachen werden Schleifen verwendet, um eine Reihe von Anweisungen mehrmals auszuführen. Wenn Sie beispielsweise die Ziffer 5 fünfmal drucken möchten, anstatt die zu schreibenVISIBLE “5” Anweisung fünfmal können Sie eine Schleife mit Single ausführen VISIBLE “5” Aussage für fünf Mal.

Einfache Schleifen werden mit IM IN YR <Label> und IM OUTTA YR <Label> dargestellt. Auf diese Weise definierte Schleifen sind Endlosschleifen und sollten mit einer GTFO-break-Anweisung beendet werden.

Iterationsschleifen haben die folgende Struktur:

IM IN YR <label> <any_operation> YR <any_variable> [TIL|WILE <expression>]
   <code block to execute inside the loop multiple times>
IM OUTTA YR <label>

Bitte beachten Sie, dass innerhalb des Funktionskörpers UPPIN (um eins inkrementieren), NERFIN (um eins dekrementieren) oder eine beliebige unäre Funktion verwendet werden kann.

Das Schlüsselwort TIL berechnet den Ausdruck als TROOF: Wenn er als FAIL ausgewertet wird, wird die Schleife erneut fortgesetzt. Wenn er als WIN ausgewertet wird, stoppt die Schleifenausführung und wird nach der übereinstimmenden IM OUTTA YR-Anweisung fortgesetzt.

Das Schlüsselwort WILE ist das Gegenteil des Schlüsselworts TIL. Wenn der Ausdruck WIN ist, wird die Ausführung fortgesetzt, andernfalls wird die Schleife beendet.

Beispiel

HAI 1.2
I HAS A VAR ITZ 0
IM IN YR LOOPY UPPIN YR VAR TIL BOTH SAEM VAR AN 10
   VISIBLE SUM OF VAR AN 1
IM OUTTA YR LOOPY
KTHXBYE

Wenn der obige Code auf einem LOLCODE-Compiler oder auf unserem Online-Codierungsgrund kompiliert wird, wird die folgende Ausgabe erzeugt.

sh-
4.3$ lci main.lo
1
2
3
4
5
6
7
8
9
10

Funktionen sind beim Programmieren nützlich, da sie den Zeit- und Arbeitsaufwand für das wiederholte Schreiben des Codes verringern. Ein gut geschriebener Funktionscode bietet eine hohe Wiederverwendbarkeit. In diesem Kapitel erfahren Sie, wie Sie Funktionen in LOLCODE schreiben und damit arbeiten.

Definition einer Funktion

Eine Funktion ist eine Reihe von Anweisungen, die durch Aufrufen dieser Funktion auf einmal ausgeführt werden. In LOLCODE beginnt die Definition einer Funktion mit dem Schlüsselwort „HOW IZ I“ und das abschließende Schlüsselwort lautet „IF U SAY SO“.

Die Syntax zum Schreiben einer Funktion in LOLCODE lautet−

HOW IZ I <function name> [YR <parameter/argument> [AN YR <other _arguments..> …]]
   <code block to execute / Set of statements to execute>
IF U SAY SO

Wichtige Punkte

Berücksichtigen Sie beim Definieren einer LOLCODE-Funktion die folgenden wichtigen Punkte:

  • In LOLCODE kann die Funktion nur eine bestimmte feste Anzahl von Argumenten als Eingabe akzeptieren.

  • Die Argumente oder Parameter sind die Bezeichner, die zu einer Variablen für die Funktion werden.

  • Funktionen in LOLCODE können nur auf die als Argumente an sie übergebenen Werte zugreifen.

Wert von einer Funktion zurückgeben

Rückgabe in der Codierung bedeutet etwas, das zurückgegeben wird. Bei der Programmierung kann eine Funktion nach Abschluss der Ausführung einen Wert an das Programm zurückgeben. In LOLCODE geben Funktionen unterschiedliche Werte zurück, wie unten erläutert -

  • FOUND YR <any_expression> Gibt den Wert des Ausdrucks zurück, wenn der Funktionsblock vollständig ausgeführt wurde.

  • GTFO Gibt keinen Wert (NOOB) zurück, der ähnlich ist return 0 in anderen Programmiersprachen wie C und Java.

  • Wenn keine andere return-Anweisung gefunden wird, dann IF U SAY SO wird ausgeführt und der Wert in der IT-Variablen wird zurückgegeben.

Funktionen aufrufen

Eine Funktion wird im Programmkörper definiert und später zur Ausführung aufgerufen. Eine Funktion, die eine bestimmte Anzahl von Argumenten akzeptiert, wird wie folgt aufgerufen:

I IZ <function_name> [YR <expression_One> [AN YR <expression_Two> 
   [AN YR <expression_Three> ...]]] MKAY

Beim Aufrufen einer Funktion wird der Ausdruck durch den Funktionsnamen gebildet, gefolgt von der Anzahl der Argumente, die die Funktion akzeptiert. Diese Argumente können einfache Variablen oder beliebige Ausdrücke sein. Wenn eine Funktion einen Ausdruck anstelle eines einfachen Werts akzeptiert, werden die Werte der Ausdrücke berechnet, bevor die Funktion aufgerufen wird.

Bitte denken Sie daran, dass die Anzahl der Argumente, die eine Funktion akzeptiert, in der Definition der Funktion definiert werden sollte.

Beispiel

HAI

HOW DUZ I MAINUMBA
   I HAS A NUMBA
   GIMMEH NUMBA
   FOUND YR NUMBA
IF U SAY SO

VISIBLE MAINUMBA

KTHXBYE

Wenn Sie den obigen Code ausführen, werden Sie nach einer Eingabe gefragt. Wenn Sie die Eingabe senden, wird das gleiche Ergebnis angezeigt. Wenn wir beispielsweise 55 eingeben, wird 55 gedruckt.

Beispiel

HAI 1.2
HOW IZ I MULTIPLY YR FIRSTOPERANT AN YR SECONDOPERANT
   FOUND YR PRODUKT OF FIRSTOPERANT AN SECONDOPERANT
   IF U SAY SO
   VISIBLE I IZ MULTIPLY YR 2 AN YR 3
KTHXBYE

Die obige Funktion, die die Multiplikation von Eingabeoperanden ausführt, gibt die folgende Ausgabe aus, wenn Sie sie ausführen

sh-
4.3$ lci main.lo

6

Beispiel

HAI 1.2
I HAS A STRINGARRAY ITZ A BUKKIT
   STRINGARRAY HAS A VAR17 ITZ "OBJECT1"
   STRINGARRAY HAS A VAR18 ITZ "OBJECT2"
   HOW IZ STRINGARRAY ACCESS YR VARIABLE
      FOUND YR STRINGARRAY'Z SRS VARIABLE
   IF U SAY SO
   I HAS A STRING ITZ "VAR17"
   VISIBLE STRINGARRAY IZ ACCESS YR STRING MKAY
KTHXBYE

Die Ausgabe, die der obige Code erzeugt, ist -

sh-
4.3$ lci main.lo 
OBJECT1

Die Ausnahmebehandlung ist einer der leistungsstarken Mechanismen zur Behandlung von Laufzeitfehlern, damit der normale Ablauf der Anwendung aufrechterhalten werden kann. LOLCODE bietet nicht viel Unterstützung für die Ausnahmebehandlung wie andere Programmiersprachen. Ähnlich wie der Try-Catch-Block in anderen Sprachen hat LOLCODE den PLZ-Block.

Wenn Sie beispielsweise eine Datei öffnen möchten, die möglicherweise vorhanden ist oder nicht, verwenden Sie -

PLZ OPEN FILE "filename.TXT"?
   AWSUM THX
      VISIBLE FILE
      O NOES
   INVISIBLE "ERROR!"
KTHX

Der Code, der eine Ausnahme verursachen kann, wird in den PLZ-Block geschrieben, und die Ausnahme wird im O NOES-Block behandelt. Hier sendet das Schlüsselwort INVISIBLE eine innere Nachricht an den Debugger.

Bitte beachten Sie, dass LOLCODE nicht regelmäßig gewartet wird und keine weiteren Updates für die Behandlung von LOLCODE-Ausnahmen und viele andere Funktionen verfügbar sind.

In den vorherigen Kapiteln wurde Ihnen die Programmierung in LOLCODE erläutert. In diesem Kapitel lernen Sie einige Beispiele kennen, mit denen Sie in LOLCODE auf fortgeschrittenem Niveau codieren können.

Beispiel 1: Programm zur Berechnung der Potenz einer Zahl

In diesem Beispiel finden Sie den Code zur Berechnung der Leistung einer Eingangsnummer. Zum Beispiel ist 2 auf Potenz 4 erhöht gleich 16.

HAI 1.2
HOW IZ I POWERTWO YR NUM
   BTW RETURN 1 IF 2 TO POWER OF 0
   BOTH SAEM NUM AN 0, O RLY?
   YA RLY, FOUND YR 1
   OIC
  
   BTW CALCULATE 2 TO POWER OF NUM
   I HAS A INDEX ITZ 0
   I HAS A TOTAL ITZ 1
   IM IN YR LOOP UPPIN YR INDEX TIL BOTH SAEM INDEX AN NUM
   TOTAL R PRODUKT OF TOTAL AN 2
   IM OUTTA YR LOOP
  
   FOUND YR TOTAL
   IF U SAY SO
   BTW OUTPUT: 8
   VISIBLE I IZ POWERTWO YR 4 MKAY
KTHXBYE

Der obige Code gibt die folgende Ausgabe aus, sobald er erfolgreich ausgeführt wurde:

sh-
4.3$ lci main.lo
16

Beispiel 2: Programm zum Erstellen eines Arrays

Dieses Beispiel zeigt den Code zum Erstellen eines Arrays mit fünf Elementen und jedem Element mit dem Wert 10.

HAI 1.3
   OBTW
      CREATES A ONE DIMENSIONAL ARRAY WITH N ELEMENTS, EACH IS A 0
   TLDR
	HOW IZ I MAKEMATRIX YR N
      I HAS A MATRIX ITZ A BUKKIT
      IM IN YR LOOP UPPIN YR INDEX TIL BOTH SAEM INDEX N
         MATRIX HAS A SRS INDEX ITZ 10
      IM OUTTA YR LOOP
  
      FOUND YR MATRIX
   IF U SAY SO

      I HAS A N ITZ 5
      I HAS A MATRIX ITZ A BUKKIT
      MATRIX R I IZ MAKEMATRIX YR N MKAY

	   BTW PRINTS THE CONTENTS OF THE ARRAY
      IM IN YR LOOP UPPIN YR INDEX TIL BOTH SAEM INDEX N
         VISIBLE MATRIX'Z SRS INDEX
   IM OUTTA YR LOOP
KTHXBYE

Sie können die folgende Ausgabe sehen, wenn Sie den obigen Code ausführen -

sh-4.3$ lci main.lo
10
10
10
10
10

Beispiel 3: Programm zur Berechnung des Faktors einer Zahl

Dieses Programm zeigt den Code zur Berechnung der Fakultät einer eingegebenen Nummer.

HAI 1.3
   HOW IZ I FACTORIAL YR N
   BOTH SAEM N AN 0
   O RLY?
	   YA RLY, FOUND YR 1
   NO WAI
      FOUND YR PRODUKT OF N AN I IZ FACTORIAL YR DIFF OF N AN 1 
      MKAY
   OIC
   IF U SAY SO

   VISIBLE I IZ FACTORIAL YR 6 MKAY
KTHXBYE

Das obige Programm druckt die Fakultät der Zahl 6 und Sie können die Ausgabe wie unten gezeigt sehen -

sh-
4.3$ lci main.lo

720

Beispiel 4: Programm zum Entwerfen eines Rechners

Sie können einen Taschenrechner entwerfen, um grundlegende mathematische Operationen mithilfe der LOLCODE-Programmierung auszuführen. Beachten Sie den unten angegebenen Code -

HAI 1.2

   I HAS A V1
   I HAS A V2
   I HAS A CHOICE
   
   VISIBLE "VALUE1"
   GIMMEH V1
   VISIBLE "VALUE2"
   GIMMEH V2VISIBLE "Choose Operation? + - * /"
   GIMMEH CHOICE CHOICE, WTF?
   OMG "+"
      VISIBLE SUM OF V1 AN V2
      
      GTFO

   OMG "-"
      VISIBLE DIFF OF V1 AN V2

      GTFO
   OMG "*"
      VISIBLE PRODUKT OF V1 AN V2
      
      GTFO

   OMG "/"
      VISIBLE QUOSHUNT OF V1 AN V2

      GTFO
   OMGWTF
      VISIBLE "CHOOSE SOME OPERATION"
   OIC

KTHXBYE

Wenn wir das obige Programm mit folgender Eingabe ausführen -

3
4
+

Bei der Ausführung generiert das obige Programm die folgende Ausgabe:

VALUE1
VALUE2
Choose Operation? + - * /
7