Lolcode - Panduan Cepat

LOLCODE adalah bahasa pemrograman esoterik yang terinspirasi dari hal-hal lucu di Internet. Ini dirancang untuk menguji batas-batas desain bahasa pemrograman.

Bab ini akan membuat Anda terbiasa dengan pengaturan lingkungan lokal untuk LOLCODE, menginstalnya di Windows, dan menjalankan skripnya secara online di Tutorialspoint-codingground.

Menyiapkan Lingkungan Lokal

Penerjemah LOLCODE ditulis dalam Bahasa C. Ini menafsirkan kode yang ditulis dalam bahasa LOLCODE di berbagai platform. Interpreter LOLCODE dikenal sebagai lci, yang merupakan singkatan dari LOLCODE Interpreter.

Harap dicatat bahwa LOLCODE secara resmi mendukung pemasangan interpreter langsung untuk Sistem operasi MAC saja. Untuk menginstal LOLCODE di sistem operasi Anda, Anda harus mengikuti langkah-langkah yang diberikan di bawah ini -

  • Tekan Command + Spasi, dan ketik Terminal dan tekan enter/return kunci
  • Jalankan di aplikasi Terminal
  • $ git clone https://github.com/justinmeza/lci.git
  • $ cd lci
  • $ cmake.
  • $ make && make install

Instalasi di Windows

Jika Anda perlu menginstal LOLCODE pada sistem operasi Windows, lakukan langkah-langkah ini -

  • Pertama tambahkan MinGW dan Python ke jalur variabel lingkungan Anda. Untuk melakukan ini, klik kananMy Computer, memilih Properties, lalu pilih Advanced system settings. Pilih Environment Variables. Di kotak ini, pilihPATH variabel dan kemudian klik Edit.

  • Sekarang, tambahkan "; C: \ MinGW \ bin; C: \ Python32" di akhir jalur tersebut.

  • Selanjutnya, buka Command Prompt dan arahkan ke direktori proyek menggunakan perintah "cd", misalnya.

  • Jalankan skrip install.py.

Menjalankan Script Online dengan TutorialsPoint - codingground

Untuk menjalankan skrip Anda dengan mudah dan cepat, gunakan platform codingground yang disediakan oleh TutorialsPoint. Untuk ini, buka tautan berikut untuk menjalankan skrip Anda secara online -

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

LOLCODE memiliki sintaks yang berbeda dibandingkan dengan bahasa pemrograman lain, namun lebih mudah untuk diingat. Bab ini memberi Anda sintaks dasar LOLCODE.

Konstruksi

Konstruksi LOLCODE adalah kata-kata gaul. Tabel berikut menunjukkan daftar alfabet dari konstruksi yang diimplementasikan sejauh ini -

Sr.No. Bangun & Penggunaan
1

BTW

Ini memulai komentar satu baris.

2

DOWN <variable>!!<times>

Ini sesuai dengan variabel = variabel - kali. Perhatikan bahwa "waktu" adalah ekstensi bahasa khusus wut.

3

GIMMEH <variable>

Ini mewakili pernyataan masukan.

4

GTFO

Ini mirip dengan break dalam bahasa lain dan menyediakan cara untuk keluar dari perulangan.

5

HAI

Ini sesuai dengan main ()berfungsi dalam bahasa lain. Ini adalah titik masuk program di LOLCODE.

6

HEREZ <label>

Ini adalah ekstensi bahasa khusus wut lainnya dan menyatakan label untuk digunakan dengan SHOO

7

I HAS A <type> <variable>

Ini mendeklarasikan variabel dari tipe tersebut.

Ada tiga tipe bawaan di LOLCODE -

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

Perhatikan bahwa tipe adalah ekstensi bahasa khusus wut.

8

IM IN YR LOOP

Ini memulai putaran tak terbatas. Satu-satunya cara untuk keluar dari loop menggunakan GTFO. Sesuai dengan untuk(;;) dalam bahasa lain

9

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

Ini mirip dengan operator if dalam bahasa lain. Operator adalah salah satu dari: LEBIH BESAR DARI, KECIL DARI SAEM AS. Perhatikan bahwa? pada akhirnya adalah opsional.

10

KTHX

Itu mengakhiri satu blok. Sesuai dengan}

11

KTHXBAI

Ini mengakhiri program

12

NOWAI

Ini sesuai dengan yang lain

13

PURR <expr>

Ini mencetak argumen di layar, diikuti dengan baris baru. Ini adalah ekstensi bahasa khusus wut.

14

RELSE

Ini sesuai dengan else (if)

15

SHOO

Ini adalah ekstensi bahasa khusus wut lainnya, yang sesuai dengan goto (menyeramkan!)

16

UP <variable>!!<times>

Ini sesuai dengan variabel = variabel + kali. Di sini "waktu" adalah ekstensi bahasa khusus wut.

17

VISIBLE <expr>

Ini mencetak argumen di layar. Perhatikan bahwa ini tidak mencetak baris baru.

18

YARLY

Ini menunjukkan awal dari blok bersyarat yang "benar"

Beberapa contoh istilah slang di LOLCODE adalah -

  • HAI adalah hai
  • KTHXBYE tidak apa-apa, terima kasih, selamat tinggal
  • BTW adalah omong-omong
  • Omong-omong, OBTW itu oh
  • TLDR terlalu panjang; tidak membaca

Spasi Putih

Di sebagian besar bahasa pemrograman, kata kunci atau token tidak boleh memiliki spasi di antaranya. Namun, dalam beberapa bahasa, spasi digunakan dalam token untuk membedakannya.

Koma

Koma berperilaku seperti kata kunci baris baru di sebagian besar bahasa, misalnya, \n di Java dan C. Anda dapat menulis banyak perintah dalam satu baris di LOLCODE, asalkan Anda memisahkannya menggunakan koma (,).

Tiga Periode (…)

Tiga periode (…) memungkinkan Anda untuk menggabungkan beberapa baris kode menjadi satu baris atau satu perintah dengan memasukkan (...) di akhir baris. Ini membuat kompiler memperlakukan konten baris berikutnya sebagai konten baris sebelumnya saja. Baris kode yang tidak terbatas dapat ditulis bersama sebagai satu perintah, selama setiap baris diakhiri dengan tiga titik.

Komentar diakhiri dengan baris baru. Harap dicatat bahwa kelanjutan baris (...) dan (,) setelah komentar (BTW) diabaikan oleh lci.

Komentar

Komentar baris tunggal ditulis diikuti dengan kata kunci BTW. Mereka dapat terjadi di mana saja di dalam badan program: bisa di baris pertama program, di antara program, di antara beberapa baris, atau di akhir program.

Semua ini adalah komentar baris tunggal yang valid−

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

Di LOLCODE, beberapa baris komentar ditulis diikuti oleh OBTW dan diakhiri dengan TLDR.

Ini adalah komentar multi-baris yang valid -

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

Pembuatan File

Program LOLCODE dimulai dengan kata kunci HAI dan harus diakhiri dengan KTHXBYE. Karena LOLCODE menggunakan bahasa singkatan, HAI pada dasarnya adalah singkatan dari Hi dan KTHXBYE dapat diingat sebagai“Ok, thanks, bye ”.

Contoh

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

Seperti dalam bahasa pemrograman lainnya, LOLCODE memungkinkan Anda untuk menentukan variabel dari berbagai jenis. Bab ini akan membuat Anda terbiasa bekerja dengan variabel di LOLCODE.

Ruang Lingkup Variabel

Ruang lingkup variabel bersifat lokal ke fungsi atau ke blok program, yaitu variabel yang ditentukan dalam satu lingkup tidak dapat dipanggil dalam lingkup lain dari program yang sama. Variabel hanya dapat diakses setelah dideklarasikan.

Harap dicatat bahwa tidak ada cakupan variabel global di LOLCODE.

Konvensi Penamaan

Nama variabel biasanya disebut pengenal. Berikut adalah beberapa konvensi penamaan variabel di LOLCODE -

  • Pengidentifikasi variabel mungkin dalam semua huruf kapital atau kecil (atau campuran keduanya).

  • Mereka hanya dapat dimulai dengan huruf dan kemudian dapat diikuti oleh huruf, angka, dan garis bawah lainnya.

  • LOLCODE tidak mengizinkan penggunaan spasi, tanda hubung, atau simbol lain saat menamai variabel.

  • Pengenal variabel peka huruf besar / kecil.

Berikut adalah beberapa aturan untuk nama yang valid dan tidak valid untuk variabel di LOLCODE−

  • Nama harus selalu dimulai dengan alfabet. Sebagai contoh,name, Name valid.

  • Nama variabel tidak boleh dimulai dengan digit. Sebagai contoh,2var tidak valid.

  • Nama variabel tidak boleh dimulai dengan karakter khusus.

  • Variabel dapat berisi _ atau digit di mana saja di dalam namanya, kecuali di indeks awal. Sebagai contoh,name2_m adalah nama yang valid.

Beberapa contoh nama yang valid di LOLCODE ditunjukkan di bawah ini -

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

Semua pernyataan deklarasi dalam kode di atas valid dan akan menghasilkan keluaran berikut saat dijalankan -

sh-4.3$ lci main.lo
111.00033
111
1

Beberapa contoh pernyataan tidak valid dan hasilnya diberikan di bawah ini -

Contoh 1

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

Kode di atas akan memberikan output berikut saat Anda menjalankannya -

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

Contoh 2

HAI 1.2
I HAS A _food ITZ "111.00033"
KTHXBYE

Kode di atas akan memberikan output berikut saat Anda menjalankannya -

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

Contoh 3

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

Kode di atas akan memberikan output berikut saat Anda menjalankannya -

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

Deklarasi dan Penugasan Variabel

Untuk declarevariabel, LOLCODE memberikan kata kunci "I HAS A" yang diikuti dengan nama variabel. Anda dapat menemukan di bawah sintaks untuk mendeklarasikan variabel.

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

Untuk assignvariabel nilai dalam pernyataan yang sama, Anda kemudian dapat mengikuti nama variabel dengan "ITZ" dan kemudian memberikan nilai yang ingin Anda tetapkan. Gunakan sintaks berikut untuk menetapkan nilai ke variabel -

<variable> R <expression>

Contoh

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

Anda juga bisa declare dan assign variabel pada saat yang sama menggunakan sintaks berikut -

I HAS A VAR ITZ VALUE

Contoh

I HAS A NAME ITS “TUTORIALS POINT”

Contoh

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

Program di atas menunjukkan deklarasi variabel dan mencetaknya. Outputnya adalah -

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

Ketik Casting

Untuk mengonversi nilai dari satu jenis ke jenis lain, kami menggunakan jenis casting. Mentransmisikan NUMBAR ke NUMBR memotong bagian desimal dari angka floating point. Mentransmisikan NUMBAR ke YARN (dengan mencetaknya, misalnya), memotong output ke 2 tempat desimal default.

Contoh

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

Baris kode di atas akan menghasilkan keluaran sebagai berikut -

sh-4.3$ lci main.lo
111.00033
111.00033

Semua variabel yang dideklarasikan dalam program LOLCODE adalah variabel lokal dan tidak ada cakupan global dalam bahasa ini untuk variabel apa pun.

LOLCODE dirancang untuk menguji batas-batas desain bahasa pemrograman. Ini adalah bahasa pemrograman esoterik yang terinspirasi oleh hal-hal lucu di Internet. Bab ini memberi Anda pemahaman tentang jenis LOLCODE.

Jenis

Saat ini, jenis variabel di LOLCODE adalah -

  • string (BENANG)
  • bilangan bulat (NUMBR)
  • mengapung (NUMBAR)
  • dan boolean (TROOF)
  • Array (BUKKIT)

Dalam LOLCODE tipe variabel ditangani secara dinamis oleh kompilator. Jika variabel tidak memiliki nilai awal, itu disebut untyped (dikenal sebagai NOOB di LOLCODE).

Sintaks untuk mendeklarasikan dan menggunakan tipe berbeda di LOLCODE ditunjukkan di bawah ini -

Untuk membuat variabel dari tipe data apa pun

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

Untuk membuat variabel dan memberikan nilai padanya

I HAS A <VARIABLE> ITZ <EXPRESSION<

Untuk menetapkan nilai ke tipe data yang sudah dibuat

<VARIABLE> R <EXPRESSION>

Tidak diketik (NOOB)

Tipe data tanpa tipe (dikenal sebagai NOOB), tidak dapat diubah menjadi tipe lain kecuali menjadi tipe data TROOF. Pengecoran implisit dari NOOB ke TROOF membuat variabel GAGAL. Setelah itu semua operasi pada NOOB menghasilkan kesalahan.

Transmisi eksplisit dari tipe data NOOB (yaitu tipe yang tidak diinisialisasi dan tidak memiliki nilai awal) menghasilkan variabel ke nilai nol untuk semua tipe lainnya.

Untuk mendefinisikan variabel yang tidak diketik, cukup nyatakan variabel dan tetapkan nilai seperti yang ditunjukkan dalam contoh ini -

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

Ketika Anda menjalankan program di atas, Anda akan menemukan hasil sebagai berikut -

sh-
4.3$ lci main.lo 
ANYVALUE
44

Boolean (TROOFS)

Dalam LOLCODE, nilai Boolean terdiri dari dua jenis. BOOLEAN umumnya memiliki dua nilai - benar dan salah. Tapi, di LOLCODE, Boolean dikenal sebagai TROOF, dan nilai benar / salah masing-masing dikenal sebagai WIN / FAIL. Semua nilai yang tidak diinisialisasi seperti string kosong (""), atau array kosong semuanya akan dikirim ke FAIL. Semua nilai yang diinisialisasi lainnya dievaluasi menjadi WIN.

Contoh

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

Anda dapat melihat output berikut ketika Anda menjalankan kode di atas -

sh-4.3$ lci main.lo
FAIL

Jenis Numerik (NUMBR)

Dalam LOLCODE, NUMBR adalah singkatan dari integer. Setiap urutan angka dianggap sebagai NUMBR, kecuali jika memiliki desimal yang muncul di mana saja di antara urutan tersebut. Untuk membuat bilangan negatif, ini dapat diawali dengan tanda hubung (-) yang menandakan bilangan negatif.

Contoh

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

Kode di atas menunjukkan kepada Anda hasil berikut ketika Anda menjalankannya-

sh- 
4.3$ lci main.lo
0

Mirip dengan NUMBR, LOLCODE memiliki tipe data lain, yang mewakili desimal atau pelampung dalam banyak bahasa pemrograman. Dalam LOLCODE, NUMBAR adalah pelampung yang berisi satu koma desimal. Mentransmisikan NUMBAR ke NUMBR memotong bagian desimal dari angka floating point dan mengembalikannya sebagai NUMBR, tanpa desimal.

String (BENANG)

Dalam LOLCODE, nilai yang mengandung string, yaitu string literal (YARN) harus dimulai dan diakhiri dengan tanda kutip ganda ("”).

Apa pun dapat ditulis di dalam string, seperti spasi, koma, tanda titik, tanda seru, atau simbol lainnya. String yang tidak memiliki kutipan tunggal dapat menyebabkan kesalahan. Titik dua digunakan sebagai karakter pelolosan di LOLCODE, dan nilai apa pun setelah titik dua mendapat arti khusus.

  • :) - Tanda kurung tutup setelah titik dua mewakili baris baru (\ n)

  • :> - Tanda kurung sudut penutup setelah titik dua mewakili tab (\ t)

  • :o - A ‘o’ karakter setelah titik dua mewakili bel (bip) (\ g)

  • :" - Sebuah “setelah titik dua mewakili kutipan ganda literal (")

  • :: - Titik dua setelah titik dua mewakili satu titik dua literal (:)

Contoh

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

Kode yang diberikan di atas menghasilkan keluaran berikut saat dieksekusi -

sh-
4.3$ lci main.lo 
XYZ

BUKKIT

Tipe ini merepresentasikan sebuah array. Ini memiliki slot bernama, yang dapat berisi variabel atau fungsi. BUKKIT dapat dideklarasikan dengan cara berikut -

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

Sebuah fungsi di dalam BUKKIT juga dapat mengakses variabel dan fungsi lain dari BUKKIT dengan menggunakan ME'Z [var] atau ME IZ [nama fungsi] (YR [argument1] (AN YR [argument2] (AN YR [argument3] ... ))) MKAY.

Contoh

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

Ini adalah keluaran yang akan Anda temukan ketika Anda menjalankan kode yang diberikan di atas -

sh-
4.3$ lci main.lo 
DOGE

Operator memainkan peran penting untuk melakukan berbagai operasi pada variabel. Bab ini memberi Anda berbagai operator di LOLCODE dan penggunaannya.

Operator

Operator matematika bergantung pada notasi prefiks, yaitu notasi yang muncul sebelum operan. Jika semua operator telah mengetahui jumlah argumen atau operan, maka tidak diperlukan penanda pengelompokan. Dalam kasus di mana operator tidak memiliki argumen atau operan tetap, operasi ditutup dengan MKAY.

MKAY tidak boleh digunakan jika bertepatan dengan akhir pernyataan. Dalam kasus seperti itu, kata kunci EOL harus digunakan. Untuk menggunakan operator matematika unary, gunakan sintaks berikut -

<operator> <expression>

Kata kunci AN secara opsional dapat digunakan untuk memisahkan argumen, dan menerapkan operasi tunggal pada lebih dari satu operan, sehingga ekspresi operator biner memiliki sintaks berikut -

<operator> <expression1> AN <expression2>

Ekspresi apa pun yang berisi operator dengan jumlah argumen tak terbatas dapat diekspresikan dengan sintaks berikut -

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

Matematika

Berikut adalah operasi matematika dasar di LOLCODE -

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> dan <b> masing-masing dapat menjadi ekspresi unik di atas, sehingga operator matematika dapat disarangkan dan dikelompokkan tanpa batas.

Matematika dilakukan dengan mempertimbangkan argumen sebagai matematika integer dengan adanya dua NUMBR, tetapi jika salah satu ekspresi adalah NUMBAR, maka operasi dianggap sebagai operasi floating point.

Contoh

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

Kode di atas akan menghasilkan output berikut saat Anda menjalankannya -

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

Poin Penting -

Pertimbangkan poin penting berikut yang terkait dengan bekerja dengan operator matematika di LOLCODE−

  • Jika satu atau kedua argumen dalam sebuah ekspresi YARN, mereka akan diperlakukan sebagai NUMBAR.

  • Jika salah satu argumen tidak dapat dengan aman dicor secara internal ke tipe numerik, maka gagal dengan kesalahan

Boolean

Operator Boolean diterapkan pada nilai-nilai yang mungkin benar atau salah. Operator Boolean yang mengerjakan TROOF adalah sebagai berikut -

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.

Harap dicatat bahwa <m> dan <n> dalam sintaks ekspresi di atas secara otomatis dilemparkan sebagai nilai TROOF jika mereka belum menjadi TROOF Values.

Perbandingan

Saat Anda ingin membandingkan dua atau lebih operand di LOLCODE, Anda dapat melakukannya dengan salah satu metode berikut -

Metode 1

Anda dapat membandingkan dua operan biner menggunakan operator persamaan. Sintaksnya ditunjukkan di bawah ini -

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

Metode 2

Anda dapat membandingkan jika kedua nilai tersebut berjenis NUMBR. Ingatlah bahwa jika salah satu nilainya adalah NUMBAR, maka nilainya akan dibandingkan sebagai nilai floating point.

Metode 3

Anda juga dapat melakukan perbandingan menggunakan operator minimum dan maksimum. Sintaksnya ditunjukkan di bawah ini -

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

Anda dapat melihat output berikut saat Anda menjalankan kode yang diberikan -

sh-
4.3$ lci main.lo

TRUE

Concatenation of Values

LOLCODE memungkinkan Anda untuk secara eksplisit menggabungkan jumlah YARN yang tak terbatas menggunakan operator SMOOSH… MKAY. Untuk penggabungan, beberapa argumen dapat dipisahkan denganAN operator.

Contoh

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

Kode yang diberikan di atas akan menghasilkan hasil berikut setelah eksekusi -

sh-
4.3$ lci main.lo

TRUE ONE MORE TRUE ANOTHER TRUE

Ketik Casting

Operator yang bekerja pada tipe tertentu secara implisit mentransmisikan atau mengonversi nilai dari satu tipe ke tipe lain dengan aman. Jika nilainya tidak dapat dikonversi dengan aman ke tipe lain, maka itu menghasilkan kesalahan.

Nilai ekspresi dapat secara eksplisit dicor atau dikonversi ke jenis lain dengan operator MAEK biner. Sintaks Operator MAEK adalah -

MAEK <expression> A <type>

di mana, <type> bisa berupa salah satu dari TROOF, YARN, NUMBR, NUMBAR, atau NOOB.

Untuk secara eksplisit mentransmisikan variabel ke beberapa tipe lain, pernyataan penugasan normal dengan operator MAEK dapat digunakan, atau pernyataan penugasan casting dapat digunakan sebagai berikut -

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

Contoh

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

Kode di atas akan menghasilkan keluaran sebagai berikut-

sh-4.3$ lci main.lo
111.00033
111.00033

Bab ini akan menjelaskan kepada Anda cara memasukkan nilai melalui terminal LOLCODE dan cara mengeluarkannya ke terminal.

I / O dari Terminal

Anda dapat menggunakan kata kunci VISIBLE untuk mencetak sesuatu di LOLCODE. VISIBLE adalah fungsi yang dapat mengambil karakter dalam jumlah tak terbatas sebagai input, dan mencetak semuanya sekaligus dengan menggabungkannya secara internal, dan mengubahnya menjadi string atau YARN.

Fungsi VISIBLE diakhiri atau diakhiri dengan pemisah, yang berupa garis akhir atau koma.

Output secara otomatis dihentikan oleh kompilator dengan carriage return. Jika token terakhir diakhiri dengan simbol tanda seru (!), Maka kereta yang dikembalikan ditimpa oleh simbol ini.

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

Harap dicatat bahwa di LOLCODE, saat ini tidak ada standar yang ditentukan untuk mencetak beberapa data ke file.

Untuk mengambil masukan dari pengguna, kata kunci yang digunakan adalah GIMMEH. Ini adalah fungsi yang dapat mengambil sejumlah variabel sebagai input. Dibutuhkan YARN sebagai input dan menyimpan nilai dalam variabel tertentu.

GIMMEH <any_variable>

Contoh

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

Ketika kode ini dijalankan, ia akan meminta Anda untuk memasukkan nomor dan kemudian mencetak nomor itu kembali di baris berikutnya secara otomatis. Ketika Anda menjalankan kode ini, itu akan mencetak keluaran berikut -

sh-
4.3$ lci main.lo

TYPE SOMETHING AND ENTER
67

67

LOLCODE memungkinkan Anda untuk mengontrol aliran program melalui berbagai pernyataan. Bab ini menjelaskan berbagai jenis pernyataan yang tersedia di LOLCODE.

Pernyataan Ekspresi

Ekspresi tanpa penetapan apa pun, yaitu hanya memanggil operasi matematika atau fungsi apa pun, adalah pernyataan hukum di LOLCODE. Setelah ekspresi dievaluasi, nilai akhirnya ditempatkan di variabel sementara IT. Nilai TI tetap berada dalam lingkup lokal, dan tetap ada hingga saat berikutnya diganti dengan ekspresi.

Pernyataan Penugasan

Pernyataan tugas digunakan untuk menetapkan keluaran dari ekspresi apa pun ke variabel tertentu. Mereka umumnya berbentuk -

<any_variable> <assignment operator> <any expression>

Harap dicatat bahwa, Anda dapat menggunakan variabel dalam ekspresi, bahkan sebelum variabel tersebut ditetapkan.

Pernyataan bersyarat

Pernyataan If-Then

Pernyataan jika-maka adalah operasi yang sangat sederhana yang bekerja pada variabel TI. Ini mirip dengan pernyataan if – else dalam bahasa pemrograman lain seperti C dan Java.

Ada empat kata kunci untuk menerapkan pernyataan if – then.

  • O RLY?
  • YA RLY
  • TIDAK ADA WAI
  • OIC

Bentuk umumnya adalah -

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

Semua pernyataan di atas dapat ditulis dalam baris yang sama dipisahkan dengan koma seperti -

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

Saat menggunakan pernyataan if-then, MEBBE opsional <ekspresi apa pun> dapat digunakan antara blok YA RLY dan NO WAI.

Jika <sembarang ekspresi> setelah MEBBE adalah True (WIN), maka blok itu dijalankan. Sebaliknya, jika ekspresi itu salah, pemblokiran akan dilewati hingga pernyataan MEBBE, NO WAI, atau OIC berikutnya.

Contoh

<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

Contoh

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

Pernyataan Kasus

Di LOLCODE, kata kunci 'WTF?' mirip dengan switch dalam banyak bahasa lain. Kata kunci WTF? mengambil IT sebagai nilai ekspresi untuk perbandingan. Untuk menggunakan WTF, blok perbandingan dibuka oleh OMG yang seharusnya berupa literal, dan bukan ekspresi.

Harap diingat bahwa setiap literal harus unik, serupa dengan kasus di bahasa lain.

Blok OMG harus diakhiri dengan pernyataan GTFO. Jika blok OMG tidak dihentikan oleh GTFO, blok OMG berikutnya dijalankan hingga GTFO tercapai.

Jika tidak ada literal yang dievaluasi sebagai benar, maka kasus default ditandai oleh OMGWTF.

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

Hasil keluaran dari kode diatas akan menjadi -

"E":

EFGH

Loop digunakan dalam bahasa pemrograman untuk mengeksekusi serangkaian pernyataan beberapa kali. Misalnya, jika Anda ingin mencetak angka 5 sebanyak lima kali, maka alih-alih menulisVISIBLE “5” pernyataan lima kali, Anda dapat menjalankan loop dengan tunggal VISIBLE “5” pernyataan selama lima kali.

Loop sederhana direpresentasikan dengan IM IN YR <label> dan IM OUTTA YR <label>. Loop yang didefinisikan dengan cara ini adalah loop tak terbatas dan harus diakhiri dengan pernyataan putus GTFO.

Loop iterasi memiliki struktur berikut -

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>

Harap dicatat bahwa di dalam badan fungsi, UPPIN (selisih satu), NERFIN (pengurangan satu), atau fungsi unary apa pun dapat digunakan.

Kata kunci TIL menghitung ekspresi sebagai TROOF: jika dievaluasi sebagai FAIL, loop berlanjut sekali lagi, jika dievaluasi sebagai WIN, maka eksekusi loop berhenti, dan berlanjut setelah pernyataan IM OUTTA YR yang cocok.

Kata kunci WILE adalah kebalikan dari kata kunci TIL, jika ekspresi MENANG, eksekusi dilanjutkan, jika tidak loop keluar.

Contoh

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

Ketika kode di atas dikompilasi pada kompiler LOLCODE manapun, atau pada codingground online kami, ini akan menghasilkan keluaran sebagai berikut.

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

Fungsi berguna dalam pemrograman karena mengurangi waktu dan tenaga untuk menulis kode berulang kali. Kode fungsi yang ditulis dengan baik menawarkan dapat digunakan kembali yang tinggi. Bab ini menjelaskan kepada Anda bagaimana menulis dan bekerja dengan fungsi di LOLCODE.

Definisi dari suatu Fungsi

Fungsi adalah sekumpulan pernyataan yang dieksekusi sekaligus dengan memanggil fungsi itu. Dalam LOLCODE, definisi fungsi dimulai dengan kata kunci "BAGAIMANA IZ I" dan kata kunci penutupnya adalah "JIKA U SAY SO".

Sintaks untuk menulis fungsi dalam LOLCODE adalah−

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

Poin Penting

Pertimbangkan poin penting berikut saat Anda mendefinisikan fungsi LOLCODE -

  • Dalam LOLCODE, fungsi hanya dapat menerima sejumlah argumen tetap sebagai input.

  • Argumen atau parameter, adalah pengidentifikasi yang menjadi variabel fungsi.

  • Fungsi di LOLCODE tidak dapat mengakses nilai lain selain nilai yang diteruskan kepada mereka sebagai argumen.

Mengembalikan Nilai dari Fungsi

Kembali dalam pengkodean berarti sesuatu yang diberikan kembali. Dalam pemrograman, suatu fungsi dapat mengembalikan beberapa nilai ke program ketika eksekusinya selesai. Dalam LOLCODE, fungsi mengembalikan nilai yang bervariasi seperti yang dijelaskan di bawah ini -

  • FOUND YR <any_expression> mengembalikan nilai ekspresi saat blok fungsi dijalankan sepenuhnya.

  • GTFO tidak mengembalikan nilai (NOOB), yang mirip dengan return 0 dalam bahasa pemrograman lain seperti C dan Java.

  • Jika tidak ada pernyataan pengembalian ditemukan, maka IF U SAY SO dijalankan dan nilai dalam variabel IT dikembalikan.

Fungsi Panggilan

Sebuah fungsi didefinisikan dalam tubuh program dan kemudian dipanggil untuk dieksekusi. Fungsi yang menerima sejumlah argumen disebut seperti yang ditunjukkan di bawah ini -

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

Saat memanggil suatu fungsi, ekspresi dibentuk oleh nama fungsi, diikuti dengan jumlah argumen yang akan diterima oleh fungsi tersebut. Argumen ini dapat berupa variabel sederhana atau ekspresi apa pun. Jika suatu fungsi menerima ekspresi apa pun alih-alih nilai sederhana, maka nilai ekspresi dihitung sebelum fungsi dipanggil.

Harap diingat bahwa jumlah argumen yang akan diterima suatu fungsi, harus ditentukan dalam definisi fungsi.

Contoh

HAI

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

VISIBLE MAINUMBA

KTHXBYE

Ketika Anda menjalankan kode di atas, itu akan meminta input, dan kemudian ketika Anda mengirimkan input, Anda akan melihat hasil yang sama. Misalnya, jika kita memasukkan 55, maka akan dicetak 55.

Contoh

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

Fungsi di atas yang melakukan perkalian operan masukan akan mencetak keluaran berikut saat Anda menjalankannya-

sh-
4.3$ lci main.lo

6

Contoh

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

Output yang akan dihasilkan oleh kode diatas adalah -

sh-
4.3$ lci main.lo 
OBJECT1

Penanganan pengecualian adalah salah satu mekanisme yang ampuh untuk menangani error runtime sehingga aliran normal aplikasi dapat dipertahankan. LOLCODE tidak memiliki banyak dukungan untuk penanganan pengecualian seperti Bahasa pemrograman lainnya. Mirip dengan blok Try-Catch dalam bahasa lain, LOLCODE memiliki blok PLZ.

Misalnya, jika Anda ingin membuka file yang mungkin ada atau tidak, gunakan -

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

Kode yang dapat menyebabkan pengecualian ditulis di blok PLZ, dan pengecualian ditangani di blok O NOES. Di sini, kata kunci TIDAK TERLIHAT mengirimkan pesan dalam ke debugger.

Harap dicatat bahwa karena LOLCODE tidak dikelola secara teratur, tidak ada lagi pembaruan yang tersedia untuk penanganan pengecualian LOLCODE dan banyak fitur lainnya.

Bab-bab sebelumnya menjelaskan kepada Anda pemrograman di LOLCODE. Dalam bab ini, Anda akan mempelajari beberapa contoh yang memungkinkan Anda membuat kode pada tingkat mahir di LOLCODE.

Contoh 1: Program untuk Menghitung Kekuatan Bilangan

Dalam contoh ini, Anda akan menemukan kode untuk menghitung kekuatan bilangan input. Misalnya, 2 pangkat 4 sama dengan 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

Kode di atas akan mencetak keluaran berikut setelah berhasil berjalan -

sh-
4.3$ lci main.lo
16

Contoh 2: Program Membuat Array

Contoh ini menunjukkan kode untuk membuat array dengan lima elemen dan setiap elemen dengan nilai 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

Anda dapat melihat output berikut ketika Anda menjalankan kode di atas -

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

Contoh 3: Program untuk Menghitung Faktorial Sebuah Angka

Program ini menunjukkan kode untuk menghitung faktorial dari sebuah bilangan input.

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

Program di atas mencetak faktorial dari angka 6 dan Anda dapat melihat hasilnya seperti gambar di bawah ini -

sh-
4.3$ lci main.lo

720

Contoh 4: Program untuk Mendesain Kalkulator

Anda dapat merancang kalkulator untuk melakukan operasi matematika dasar menggunakan pemrograman LOLCODE. Perhatikan kode yang diberikan di bawah ini -

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

Saat kami menjalankan program di atas dengan input berikut -

3
4
+

Setelah dieksekusi, program di atas akan menghasilkan keluaran berikut -

VALUE1
VALUE2
Choose Operation? + - * /
7