The API is compatible with the LOLCODE Specification 1.2. The functions have to be used between the opening and closing program blocks. For example:
HAI 1.2 [... insert function ...] I HAS A VAR ITZ 4 VISIBLE SMOOSH "Factorial: " AN I IZ WAS_FAK YR VAR MKAY KTHXBYE
will print out the factorial of 4
provided that the WAS_FAK
function is inserted into the placeholder (this is because functions in LOLCODE cannot live outside of the HAI
/KTHXBYE
code-blocks.
A set of functions that perform various numerical inequalities following LaTeX syntax: LT
(), LE
(), GT
() and GE
().
OBTW Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 TLDR HOW IZ I LT YR LEFT AN YR RIGHT FOUND YR DIFFRINT LEFT AN BIGGR OF LEFT AN RIGHT IF U SAY SO
OBTW Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 TLDR HOW IZ I GT YR LEFT AN YR RIGHT FOUND YR DIFFRINT LEFT AN SMALLR OF LEFT AN RIGHT IF U SAY SO
OBTW Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 TLDR HOW IZ I LE YR LEFT AN YR RIGHT BOTH SAEM LEFT AN SMALLR OF LEFT AN RIGHT IF U SAY SO
OBTW Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 TLDR HOW IZ I GE YR LEFT AN YR RIGHT FOUND YR BOTH SAEM LEFT AN BIGGR OF LEFT AN RIGHT IF U SAY SO
OBTW Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 TLDR HOW IZ I WAS_RAIZ YR FOOT AN YR PAW I HAS A BASE ITZ FOOT IM IN YR LOOP UPPIN YR STUFF WILE DIFFRINT STUFF AN PAW FOOT R PRODUKT OF FOOT AN BASE IM OUTTA YR LOOP FOUND YR QUOSHUNT OF FOOT AN BASE IF U SAY SO
OBTW Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 TLDR HOW IZ I WAS_FAK YR TAIL TAIL, WTF? OMG 0 FOUND YR 1 OMG 1 FOUND YR TAIL OIC FOUND YR PRODUKT OF TAIL AN I IZ WAS_FAK YR DIFF OF TAIL AN 1 MKAY IF U SAY SO
This is a Lehmer random number generator,
using the ZX Spectrum Fermat prime vectors where and .
OBTW Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 TLDR I HAS A COUNTER ITZ 1 HOW IZ I WAS_MESS YR NUMBER I HAS A THING ITZ MAEK NUMBER A NUMBAR IM IN YR LOOP UPPIN YR ROUNDS WILE DIFFRINT ROUNDS AN NUMBER THING R MOD OF PRODUKT OF 75 AN SUM OF THING AN COUNTER AN 65537 COUNTER R SUM OF COUNTER AN 1 IM OUTTA YR LOOP FOUND YR MOD OF THING AN NUMBER IF U SAY SO
The algorithm will generate numbers in the interval (larger if a different Fermat prime is chosen for ). The function takes a parameter an upper bound NUMBER
and can be called using:
VISIBLE I IZ WAS_MESS YR 100 MKAY
which will generate a random number in the interval .
The following plot:
is the result of by drawing numbers in the interval using:
IM IN YR LOOP UPPIN YR DRAWS WILE DIFFRINT DRAWS AN 1000 VISIBLE I IZ WAS_MESS YR 100 MKAY IM OUTTA YR LOOP
The WAS_FIB
function prints out the first ROUNDS
number of Fibonacci numbers starting with the initialisation vectors (either 0
and 1
or 1
and 1
) passed to the function as FIRST
and SECOND
.
OBTW Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 TLDR HOW IZ I WAS_FIB YR ROUNDS AN YR FIRST AN YR SECOND DIFFRINT ROUNDS AN SMALLR OF ROUNDS AN 0, O RLY? YA RLY, VISIBLE FIRST FOUND YR I IZ WAS_FIB YR DIFF OF ROUNDS AN 1 AN YR SECOND AN YR SUM OF FIRST AN SECOND MKAY NO WAI, GTFO OIC IF U SAY SO
An example call is:
I HAS A ROUNDS ITZ 10 I HAS A FIRST ITZ 0 I HAS A SECOND ITZ 1 I IZ WAS_FIB YR ROUNDS AN YR FIRST AN YR SECOND MKAY
which prints out:
0
1
1
2
3
5
8
13
21
34
Note that the edge-cases where the function is passed a ROUNDS
number smaller than the initialisation vector are respected by WAS_FIB
.