Lolcode-퀵 가이드
LOLCODE는 인터넷의 재미있는 것들에서 영감을받은 난해한 프로그래밍 언어입니다. 프로그래밍 언어 디자인의 경계를 테스트하도록 설계되었습니다.
이 장에서는 LOLCODE에 대한 로컬 환경을 설정하고 Windows에 설치하고 Tutorialspoint-codingground 에서 온라인으로 해당 스크립트를 실행하는 방법 에 익숙해집니다.
로컬 환경 설정
LOLCODE 인터프리터는 C 언어로 작성되었습니다. 여러 플랫폼에서 LOLCODE 언어로 작성된 코드를 해석합니다. LOLCODE 인터프리터는 LOLCODE 인터프리터를 나타내는 lci로 알려져 있습니다.
LOLCODE는 공식적으로 MAC 운영 체제 용 인터프리터 직접 설치를 지원합니다. 운영 체제에 LOLCODE를 설치하려면 아래 단계를 따라야합니다.
- Command + Space를 누르고 입력 Terminal 그리고 누르십시오 enter/return 키
- 터미널 앱에서 실행
- $ 자식 클론 https://github.com/justinmeza/lci.git
- $ cd lci
- $ cmake.
- $ make && make install
Windows에 설치
Windows 운영 체제에 LOLCODE를 설치해야하는 경우 다음 단계를 수행하십시오.
먼저 MinGW와 Python을 환경 변수 경로에 추가합니다. 이렇게하려면 마우스 오른쪽 버튼을 클릭하십시오.My Computer, 고르다 Properties, 그런 다음 선택 Advanced system settings. 고르다 Environment Variables. 이 상자에서PATH 변수를 클릭 한 다음 Edit.
이제 "; C : \ MinGW \ bin; C : \ Python32"를 해당 경로 끝에 추가합니다.
다음으로 Command Prompt 예를 들어 "cd"명령을 사용하여 프로젝트 디렉토리로 이동합니다.
install.py 스크립트를 실행하십시오.
TutorialsPoint를 사용하여 온라인으로 스크립트 실행-Codingground
스크립트를 쉽고 빠르게 실행하려면 TutorialsPoint에서 제공 하는 코딩 그라운드 플랫폼을 사용하십시오 . 이를 위해 다음 링크로 이동하여 온라인으로 스크립트를 실행하십시오.
https://www.tutorialspoint.com/execute_lolcode_online.phpLOLCODE는 다른 프로그래밍 언어에 비해 구문이 다르지만 기억하기가 더 쉽습니다. 이 장에서는 LOLCODE의 기본 구문을 제공합니다.
구성
LOLCODE 구조는 속어입니다. 다음 표는 지금까지 구현 된 구성의 알파벳순 목록을 보여줍니다-
Sr. 아니. | 구성 및 사용 |
---|---|
1 | BTW 한 줄 주석을 시작합니다. |
2 | DOWN <variable>!!<times> 이것은 variable = variable-times에 해당합니다. "times"는 wut 전용 언어 확장입니다. |
삼 | GIMMEH <variable> 이것은 입력 문을 나타냅니다. |
4 | GTFO 이것은 break 다른 언어로 제공되며 루프에서 벗어나는 방법을 제공합니다. |
5 | HAI 이것은 main ()다른 언어로 기능합니다. LOLCODE의 프로그램 진입 점입니다. |
6 | HEREZ <label> 이것은 또 다른 wut 전용 언어 확장이며 SHOO와 함께 사용할 레이블을 선언합니다. |
7 | I HAS A <type> <variable> 이것은 상기 유형의 변수를 선언합니다. LOLCODE에는 세 가지 내장 유형이 있습니다.
유형은 wut 전용 언어 확장입니다. |
8 | IM IN YR LOOP 이것은 무한 루프를 시작합니다. 루프를 종료하는 유일한 방법은 GTFO를 사용하는 것입니다. 에 해당(;;) 다른 언어로 |
9 | IZ <expr1> <operator> <expr2>?: Conditional structure 이것은 다른 언어의 if 연산자와 유사합니다. 연산자는 BIGGER THAN, SMALLER THAN, SAEM AS 중 하나입니다. ? 끝에는 선택 사항입니다. |
10 | KTHX 블록을 끝냅니다. 에 해당} |
11 | KTHXBAI 이것은 프로그램을 종료합니다 |
12 | NOWAI 이것은 else에 해당합니다. |
13 | PURR <expr> 이것은 화면에 인수를 인쇄하고 그 뒤에 개행을 표시합니다. 그것은 wut 전용 언어 확장입니다. |
14 | RELSE 이것은 else (if) |
15 | SHOO 이것은 다음에 해당하는 또 다른 wut 전용 언어 확장입니다. goto (공포!) |
16 | UP <variable>!!<times> 이것은 변수 = 변수 + 시간에 해당합니다. 여기서 "times"는 wut 전용 언어 확장입니다. |
17 | VISIBLE <expr> 화면에 인수를 인쇄합니다. 이것은 개행을 인쇄하지 않습니다. |
18 | YARLY 이것은 "참"조건부 블록의 시작을 나타냅니다. |
LOLCODE에서 속어 용어의 예는 다음과 같습니다.
- HAI 안녕하세요
- KTHXBYE 괜찮아, 고마워, 안녕
- 그런데 BTW는
- OBTW는 오, 그런데
- TLDR이 너무 깁니다. 읽지 않았다
공백
대부분의 프로그래밍 언어에서 키워드 또는 토큰 사이에 공백이 없을 수 있습니다. 그러나 일부 언어에서는 토큰을 구분하기 위해 공백이 토큰에 사용됩니다.
반점
쉼표는 대부분의 언어에서 개행 키워드처럼 작동합니다. 예를 들면 다음과 같습니다. \n 쉼표 (,)를 사용하여 구분하는 경우 LOLCODE에서 한 줄에 많은 명령을 작성할 수 있습니다.
세 기간 (…)
세 개의 마침표 (…)를 사용하면 줄 끝에 (...)를 포함하여 여러 줄의 코드를 단일 줄 또는 단일 명령으로 결합 할 수 있습니다. 이렇게하면 컴파일러가 다음 행의 내용을 이전 행의 내용으로 만 처리합니다. 각 줄이 마침표 3 개로 끝나는 한 무한한 줄의 코드를 단일 명령으로 함께 작성할 수 있습니다.
주석은 개행으로 끝납니다. 주석 (BTW) 뒤의 줄 연속 (...) 및 (,)는 lci에서 무시됩니다.
코멘트
한 줄 주석 뒤에 BTW 키워드가 기록됩니다. 프로그램 본문 내부 어디에서나 발생할 수 있습니다. 프로그램의 첫 번째 줄, 프로그램 사이, 일부 줄 사이 또는 프로그램 끝에있을 수 있습니다.
이 모든 것은 유효한 한 줄 주석입니다-
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
LOLCODE에서는 여러 줄 주석이 작성되고 OBTW가 뒤 따르고 TLDR로 끝납니다.
이것은 유효한 여러 줄 주석입니다-
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
파일 생성
LOLCODE 프로그램은 HAI 키워드로 시작하고 KTHXBYE로 끝나야합니다. LOLCODE는 속기 언어를 사용하므로 HAI는 기본적으로 Hi를 나타내며 KTHXBYE는 다음과 같이 기억할 수 있습니다.“Ok, thanks, bye ”.
예
HAI 1.2
I HAS A NAME
VISIBLE "NAME::"!
GIMMEH NAME
VISIBLE "tutorialsPoint " NAME "!"
KTHXBYE
다른 프로그래밍 언어와 마찬가지로 LOLCODE를 사용하면 다양한 유형의 변수를 정의 할 수 있습니다. 이 장에서는 LOLCODE의 변수 작업에 익숙해집니다.
변수 범위
변수의 범위는 함수 또는 프로그램 블록에 국한됩니다. 즉, 한 범위에 정의 된 변수는 동일한 프로그램의 다른 범위에서 호출 될 수 없습니다. 변수는 선언 된 후에 만 액세스 할 수 있습니다.
LOLCODE에는 변수의 전역 범위가 없습니다.
명명 규칙
변수 이름은 일반적으로 식별자라고합니다. 다음은 LOLCODE에서 변수 이름 지정에 대한 몇 가지 규칙입니다.
변수 식별자는 모두 대문자 또는 소문자 (또는 둘의 혼합) 일 수 있습니다.
문자로만 시작하고 뒤에 다른 문자, 숫자 및 밑줄이 올 수 있습니다.
LOLCODE는 변수 이름을 지정할 때 공백, 대시 또는 기타 기호를 사용할 수 없습니다.
변수 식별자는 대소 문자를 구분합니다.
다음은 LOLCODE에서 변수의 유효하고 유효하지 않은 이름에 대한 몇 가지 규칙입니다.
이름은 항상 알파벳으로 시작해야합니다. 예를 들면name, Name 유효합니다.
변수 이름은 숫자로 시작할 수 없습니다. 예를 들면2var 유효하지 않다.
변수 이름은 특수 문자로 시작할 수 없습니다.
변수는 시작 색인을 제외하고 이름 내부에 _ 또는 숫자를 포함 할 수 있습니다. 예를 들면name2_m 유효한 이름입니다.
LOLCODE에서 유효한 이름의 몇 가지 예는 다음과 같습니다.
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
위 코드의 모든 선언문은 유효하며 실행시 다음 출력을 생성합니다.
sh-4.3$ lci main.lo
111.00033
111
1
유효하지 않은 문장과 그 출력의 몇 가지 예는 다음과 같습니다.
예 1
HAI 1.2
I HAS A 2food ITZ "111.00033"
KTHXBYE
위의 코드는 실행할 때 다음과 같은 출력을 제공합니다.
sh-
4.3$ lci main.lo
Line 2: Expected: identifier; Got: int(2).
예 2
HAI 1.2
I HAS A _food ITZ "111.00033"
KTHXBYE
위의 코드는 실행할 때 다음과 같은 출력을 제공합니다.
sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: _food ITZ "111.00033".
예제 3
HAI 1.2
I HAS A f$ood ITZ "111.00033"
KTHXBYE
위의 코드는 실행할 때 다음과 같은 출력을 제공합니다.
sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: $ood ITZ "111.00033".
변수 선언 및 할당
에 declare변수, LOLCODE는 변수 이름이 뒤에 오는 키워드 "I HAS A"를 제공합니다. 변수 선언 구문은 아래에서 찾을 수 있습니다.
I HAS A VAR BTW VAR is empty now, You can use any name instead of var
에 assign변수에 동일한 명령문의 값을 입력하면 변수 이름 뒤에“ITZ”가 붙은 다음 할당 할 값을 지정할 수 있습니다. 다음 구문을 사용하여 변수에 값을 할당하십시오-
<variable> R <expression>
예
VAR R "Green" BTW VAR is now a YARN and equals "Green"
VAR R 30 BTW VAR is now a NUMBR and equals 30
당신은 또한 수 declare 과 assign 다음 구문을 사용하여 동시에 변수-
I HAS A VAR ITZ VALUE
예
I HAS A NAME ITS “TUTORIALS POINT”
예
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
위의 프로그램은 변수 선언을 보여주고 출력합니다. 출력은-
sh-
4.3$ lci main.lo
1
OMG!
5
유형 주조
한 유형의 값을 다른 유형으로 변환하기 위해 유형 캐스팅을 사용합니다. NUMBAR를 NUMBR로 캐스트하면 부동 소수점 숫자의 소수 부분이 잘립니다. NUMBAR를 YARN으로 캐스트 (예 : 인쇄)하면 출력이 기본 소수점 2 자리로 잘립니다.
예
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
위의 코드 줄은 다음 출력을 생성합니다.
sh-4.3$ lci main.lo
111.00033
111.00033
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 데이터 유형 (즉, 초기화되지 않고 초기 값이없는 유형)의 명시 적 캐스트는 다른 모든 유형에 대해 0 값이됩니다.
유형이 지정되지 않은 변수를 정의하려면 변수를 선언하고 다음 예제와 같이 값을 할당하십시오.
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에서 부울 값은 두 가지 유형입니다. BOOLEAN에는 일반적으로 true와 false의 두 가지 값이 있습니다. 그러나 LOLCODE에서는 Boolean을 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는 소수점 하나를 포함하는 부동 소수점입니다. 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는 다음과 같은 방법으로 선언 할 수 있습니다.
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 [인수 1] (AN YR [인수 2] (AN YR [인수 3] ... ))) 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
연산자는 변수에 대한 다양한 작업을 수행하는 데 중요한 역할을합니다. 이 장에서는 LOLCODE의 다양한 연산자와 사용법에 대해 설명합니다.
연산자
수학 연산자는 접두사 표기법, 즉 피연산자 앞에 오는 표기법에 따라 다릅니다. 모든 연산자에 알려진 수의 인수 또는 피연산자가 있으면 그룹화 마커가 필요하지 않습니다. 연산자에 고정 인수 또는 피연산자가없는 경우 연산은 MKAY로 닫힙니다.
MKAY는 명령문의 끝과 일치하면 사용할 수 없습니다. 이러한 경우 EOL 키워드를 사용해야합니다. 단항 수학 연산자를 사용하려면 다음 구문을 사용하십시오.
<operator> <expression>
AN 키워드는 선택적으로 인수를 분리하는 데 사용할 수 있으며 둘 이상의 피연산자에 단일 연산을 적용하므로 이항 연산자 표현식은 다음 구문을 갖습니다.
<operator> <expression1> AN <expression2>
무한한 수의 인수를 가진 연산자를 포함하는 모든 표현식은 다음 구문으로 표현할 수 있습니다.
<operator> <expression1> [[AN <expression2>] AN <expression3> ...] MKAY
수학
다음은 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> 및 <b>는 각각 위의 고유 한 표현식이 될 수 있으므로 수학 연산자는 무한히 중첩되고 그룹화 될 수 있습니다.
수학은 두 개의 NUMBR이있는 상태에서 인수를 정수 수학으로 고려하여 수행되지만 표현식 중 하나가 NUMBAR이면 연산은 부동 소수점 연산으로 간주됩니다.
예
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
위의 코드는 실행할 때 다음과 같은 출력을 생성합니다.
sh-
4.3$ lci main.lo
6
2
8
2
0
4
2
중요한 포인트-
LOLCODE에서 수학 연산자 작업과 관련된 다음 중요한 사항을 고려하십시오.
식의 인수 중 하나 또는 둘 모두가 YARN이면 NUMBAR로 처리됩니다.
인수를 내부적으로 숫자 유형으로 안전하게 캐스트 할 수없는 경우 오류와 함께 실패합니다.
부울
부울 연산자는 true 또는 false 일 수있는 값에 적용됩니다. TROOF에서 작업하는 부울 연산자는 다음과 같습니다.
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.
위의 표현식 구문에서 <m> 및 <n>은 아직 TROOF 값이 아닌 경우 자동으로 TROOF 값으로 캐스팅됩니다.
비교
LOLCODE에서 두 개 이상의 피연산자를 비교하려면 다음 방법 중 하나를 사용하면됩니다.
방법 1
같음 연산자를 사용하여 두 이진 피연산자를 비교할 수 있습니다. 구문은 다음과 같습니다.
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
방법 2
두 값이 모두 NUMBR 유형인지 비교할 수 있습니다. 값 중 하나가 NUMBAR이면 부동 소수점 값으로 비교됩니다.
방법 3
최소 및 최대 연산자를 사용하여 비교를 수행 할 수도 있습니다. 구문은 다음과 같습니다.
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
주어진 코드를 실행하면 다음 출력을 볼 수 있습니다.
sh-
4.3$ lci main.lo
TRUE
값의 연결
LOLCODE를 사용하면 SMOOSH… MKAY 연산자를 사용하여 무한한 수의 YARN을 명시 적으로 연결할 수 있습니다. 연결의 경우 여러 인수를AN 운영자.
예
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
위의 주어진 코드는 실행시 다음 결과를 생성합니다-
sh-
4.3$ lci main.lo
TRUE ONE MORE TRUE ANOTHER TRUE
유형 주조
특정 유형에서 작동하는 연산자는 한 유형의 값을 다른 유형으로 안전하게 캐스트하거나 변환합니다. 값을 다른 유형으로 안전하게 변환 할 수없는 경우 오류가 발생합니다.
표현식의 값은 이진 MAEK 연산자를 사용하여 명시 적으로 캐스트되거나 다른 유형으로 변환 될 수 있습니다. MAEK 연산자의 구문은-
MAEK <expression> A <type>
여기서 <type>은 TROOF, YARN, NUMBR, NUMBAR 또는 NOOB 중 하나 일 수 있습니다.
변수를 다른 유형으로 명시 적으로 캐스팅하려면 MAEK 연산자가있는 일반 할당 문을 사용하거나 다음과 같이 캐스팅 할당 문을 사용할 수 있습니다.
<Any_variable> IS NOW A <type> BTW this code will be equal to
<Any_variable> R MAEK <variable> A <type>
예
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
위의 코드는 다음 출력을 생성합니다.
sh-4.3$ lci main.lo
111.00033
111.00033
이 장에서는 LOLCODE 터미널을 통해 값을 입력하는 방법과이를 터미널에 출력하는 방법을 설명합니다.
터미널에서 I / O
VISIBLE 키워드를 사용하여 LOLCODE로 인쇄 할 수 있습니다. VISIBLE은 무한한 수의 문자를 입력으로 받아 내부적으로 연결하고 문자열 또는 YARN으로 변환하여 한 번에 모두 인쇄 할 수있는 함수입니다.
VISIBLE 함수는 구분 기호 (행 끝 또는 쉼표)로 종료되거나 종료됩니다.
출력은 캐리지 리턴과 함께 컴파일러에 의해 자동으로 종료됩니다. 마지막 토큰이 느낌표 (!)로 끝나는 경우 반환 된 캐리지가이 기호로 대체됩니다.
VISIBLE <any_expression> [<any_expression> ...][!]
LOLCODE에는 현재 일부 데이터를 파일로 인쇄하기위한 정의 된 표준이 없습니다.
사용자로부터 입력을 받기 위해 사용 된 키워드는 GIMMEH입니다. 여러 변수를 입력으로 사용할 수있는 함수입니다. YARN을 입력으로 사용하고 주어진 변수에 값을 저장합니다.
GIMMEH <any_variable>
예
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
이 코드가 실행되면 번호를 입력하라는 메시지가 표시되고 자동으로 다음 줄에 번호가 다시 인쇄됩니다. 이 코드를 실행하면 다음 출력이 인쇄됩니다.
sh-
4.3$ lci main.lo
TYPE SOMETHING AND ENTER
67
67
LOLCODE를 사용하면 다양한 명령문을 통해 프로그램의 흐름을 제어 할 수 있습니다. 이 장에서는 LOLCODE에서 사용할 수있는 다양한 유형의 문에 대해 설명합니다.
식 문
할당이없는 표현식, 즉 단순히 수학적 연산이나 함수를 호출하는 것은 LOLCODE의 법적 진술입니다. 표현식이 평가되면 최종 값이 임시 변수 IT에 배치됩니다. IT의 가치는 로컬 범위에 남아 있으며 다음에 표현식으로 대체 될 때까지 존재합니다.
할당 명세서
할당 문은 모든 표현식의 출력을 주어진 변수에 할당하는 데 사용됩니다. 그들은 일반적으로 형태입니다-
<any_variable> <assignment operator> <any expression>
할당되기 전에도 표현식에서 변수를 사용할 수 있습니다.
조건문
If-Then 문
if-then 문은 IT 변수에 대해 작업하는 매우 간단한 작업입니다. C 및 Java와 같은 다른 프로그래밍 언어의 if-else 문과 유사합니다.
if-then 문을 적용하기위한 4 개의 키워드가 있습니다.
- O RLY?
- YA RLY
- WAI 없음
- OIC
일반적인 형태는-
<any_expression>
O RLY?
YA RLY
<code to execute if above condition is true>
NO WAI
<code to execute in this block>
OIC
위의 모든 문장은 다음과 같이 쉼표로 구분하여 같은 줄에 작성할 수 있습니다.
BOTH SAEM NAMES AN "Name", O RLY?
YA RLY, VISIBLE "My name is ABCD"
NO WAI, VISIBLE "Your name is ABCD"
OIC
if-then 문을 사용하는 동안 YA RLY 및 NO WAI 블록 사이에 선택적 MEBBE <any expression>을 사용할 수 있습니다.
MEBBE 다음의 <any expression>이 True (WIN)이면 해당 블록이 실행됩니다. 그렇지 않고 해당 표현식이 거짓이면 다음 MEBBE, NO WAI 또는 OIC 문까지 블록을 건너 뜁니다.
예
<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
예
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
사례 진술
LOLCODE에서 키워드 'WTF?' 다른 많은 언어로 전환하는 것과 유사합니다. 키워드 WTF? 비교를위한 표현식 값으로 IT를 사용합니다. WTF를 사용하려면 표현식이 아닌 리터럴이어야하는 비교 블록이 OMG에 의해 열립니다.
각 리터럴은 다른 언어의 경우와 유사하게 고유해야합니다.
OMG 블록은 GTFO 문으로 종료되어야합니다. OMG 블록이 GTFO에 의해 종료되지 않으면 GTFO에 도달 할 때까지 다음 OMG 블록이 실행됩니다.
true로 평가되는 리터럴이 없으면 기본 케이스는 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
위 코드의 출력 결과는 다음과 같습니다.
"이자형":
EFGH
루프는 프로그래밍 언어에서 일련의 명령문을 여러 번 실행하는 데 사용됩니다. 예를 들어 숫자 5를 다섯 번 인쇄하려면VISIBLE “5” 문장을 다섯 번, 당신은 단일로 루프를 실행할 수 있습니다 VISIBLE “5” 성명을 다섯 번.
단순 루프는 IM IN YR <레이블> 및 IM OUTTA YR <레이블>로 표시됩니다. 이런 식으로 정의 된 루프는 무한 루프이며 GTFO break 문으로 종료해야합니다.
반복 루프의 구조는 다음과 같습니다.
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>
함수 본문 내에서 UPPIN (1 씩 증가), NERFIN (1 씩 감소) 또는 임의의 단항 함수를 사용할 수 있습니다.
TIL 키워드는 표현식을 TROOF로 계산합니다. FAIL로 평가되면 루프가 한 번 더 계속되고, WIN로 평가되면 루프 실행이 중지되고 일치하는 IM OUTTA YR 문 이후에 계속됩니다.
WILE 키워드는 TIL 키워드의 반대입니다. 표현식이 WIN이면 실행이 계속되고 그렇지 않으면 루프가 종료됩니다.
예
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
위의 코드가 LOLCODE 컴파일러 또는 온라인 코딩 그라운드에서 컴파일되면 다음과 같은 출력이 생성됩니다.
sh-
4.3$ lci main.lo
1
2
3
4
5
6
7
8
9
10
함수는 코드를 반복해서 작성하는 시간과 노력을 줄여주기 때문에 프로그래밍에 유용합니다. 잘 작성된 함수 코드는 높은 재사용 성을 제공합니다. 이 장에서는 LOLCODE에서 함수를 작성하고 사용하는 방법을 설명합니다.
기능의 정의
함수는 해당 함수를 호출하여 한 번에 실행되는 일련의 문입니다. LOLCODE에서 함수의 정의는 "HOW IZ I"키워드로 시작하고 닫는 키워드는 "IF U SAY SO"입니다.
LOLCODE로 함수를 작성하는 구문은 다음과 같습니다.
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
중요 사항
LOLCODE 함수를 정의 할 때 다음과 같은 중요한 사항을 고려하십시오.
LOLCODE에서 함수는 고정 된 개수의 인수 만 입력으로받을 수 있습니다.
인수 또는 매개 변수는 함수에 대한 변수가되는 식별자입니다.
LOLCODE의 함수는 인수로 전달 된 값 이외의 다른 값에 액세스 할 수 없습니다.
함수에서 값 반환
코딩에서 반환은 반환되는 것을 의미합니다. 프로그래밍에서 함수는 실행이 완료되면 프로그램에 일부 값을 반환 할 수 있습니다. LOLCODE에서 함수는 아래에 설명 된대로 다양한 값을 반환합니다.
FOUND YR <any_expression> 펑션 블록이 완전히 실행되면 표현식의 값을 반환합니다.
GTFO 값 없음 (NOOB)을 반환합니다. return 0 C 및 Java와 같은 다른 프로그래밍 언어에서.
다른 return 문이 없으면 IF U SAY SO 실행되고 IT 변수의 값이 반환됩니다.
함수 호출
함수는 프로그램 본문에 정의되며 나중에 실행을 위해 호출됩니다. 주어진 수의 인수를 받아들이는 함수는 아래와 같이 호출됩니다.
I IZ <function_name> [YR <expression_One> [AN YR <expression_Two>
[AN YR <expression_Three> ...]]] MKAY
함수를 호출하는 동안 표현식은 함수 이름과 함수가 허용 할 인수 수로 구성됩니다. 이러한 인수는 단순 변수 또는 표현식 일 수 있습니다. 함수가 단순 값 대신 표현식을 허용하면 함수가 호출되기 전에 표현식의 값이 계산됩니다.
함수가 허용하는 인수의 수는 함수 정의에 정의되어야합니다.
예
HAI
HOW DUZ I MAINUMBA
I HAS A NUMBA
GIMMEH NUMBA
FOUND YR NUMBA
IF U SAY SO
VISIBLE MAINUMBA
KTHXBYE
위의 코드를 실행하면 입력을 요청하고 입력을 제출하면 결과와 동일한 내용이 표시됩니다. 예를 들어 55를 입력하면 55가 인쇄됩니다.
예
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
입력 피연산자의 곱셈을 수행하는 위의 함수를 실행하면 다음과 같은 출력이 인쇄됩니다.
sh-
4.3$ lci main.lo
6
예
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
위 코드가 생성하는 출력은 다음과 같습니다.
sh-
4.3$ lci main.lo
OBJECT1
예외 처리는 응용 프로그램의 정상적인 흐름을 유지할 수 있도록 런타임 오류를 처리하는 강력한 메커니즘 중 하나입니다. LOLCODE는 다른 프로그래밍 언어처럼 예외 처리를 많이 지원하지 않습니다. 다른 언어의 Try-Catch 블록과 유사하게 LOLCODE에는 PLZ 블록이 있습니다.
예를 들어, 존재하거나 존재하지 않을 수있는 파일을 열려면-
PLZ OPEN FILE "filename.TXT"?
AWSUM THX
VISIBLE FILE
O NOES
INVISIBLE "ERROR!"
KTHX
예외를 발생시킬 수있는 코드는 PLZ 블록에 기록되고 예외는 O NOES 블록에서 처리됩니다. 여기서 INVISIBLE 키워드는 디버거에 내부 메시지를 보냅니다.
LOLCODE는 정기적으로 유지 관리되지 않으므로 LOLCODE 예외 처리 및 기타 많은 기능에 사용할 수있는 업데이트가 더 이상 없습니다.
이전 장에서는 LOLCODE 프로그래밍에 대해 설명했습니다. 이 장에서는 LOLCODE의 고급 수준에서 코딩 할 수있는 몇 가지 예를 배웁니다.
예제 1 : 숫자의 거듭 제곱을 계산하는 프로그램
이 예에서는 입력 숫자의 거듭 제곱을 계산하는 코드를 찾을 수 있습니다. 예를 들어 2를 4 승으로하면 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
위의 코드는 성공적으로 실행되면 다음 출력을 인쇄합니다.
sh-
4.3$ lci main.lo
16
예제 2 : 배열을 만드는 프로그램
이 예제는 5 개의 요소와 값이 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
위의 코드를 실행하면 다음 출력을 볼 수 있습니다.
sh-4.3$ lci main.lo
10
10
10
10
10
예 3 : 숫자의 계승을 계산하는 프로그램
이 프로그램은 입력 숫자의 계승을 계산하는 코드를 보여줍니다.
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
위의 프로그램은 숫자 6의 계승을 인쇄하고 아래와 같이 출력을 볼 수 있습니다.
sh-
4.3$ lci main.lo
720
예제 4 : 계산기 설계 프로그램
LOLCODE 프로그래밍을 사용하여 기본적인 수학 연산을 수행하도록 계산기를 설계 할 수 있습니다. 아래 주어진 코드를 관찰하십시오-
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
다음 입력으로 위의 프로그램을 실행하면-
3
4
+
실행시 위의 프로그램은 다음과 같은 출력을 생성합니다.
VALUE1
VALUE2
Choose Operation? + - * /
7