3.1. Operacje arytmetyczne
ARCCOS n → n
Funkcja arcus cosinus. Jej wartością jest miara kąta w stopniach.
TO WIEL.CZEBYSZEWA :st :x
OUTPUT COS (:st ARCCOS
:x )
END
PRINT WIEL. CZEBYSZEWA 5 0 0
PRINT WIEL.CZEBYSZEWA 5 -1
-1
ARCCOT n → n
Funkcja arcus cotangens. Jej wartością jest miara kąta w stopniach.
PRINT ARCCOT 0
90
PRINT ARCCOT 1
45
ARCSIN n → n
Funkcja arcus sinus. Jej wartością jest miara kąta w stopniach.
PRINT ARCSIN 0.5
30
PRINT ARCSIN 1
90
ARCTAN n → n
Funkcja arcus tangens. Jej wartością jest miara kąta w stopniach.
PRINT ARCTAN 0
0
PRINT ARCTAN 1 / SQRT 3
30
ATAN n → n
Patrz ARCTAN
COS n → n COSINE n → n
Funkcja cosinus. Jej argumentem jest wartość kąta w stopniach.
PRINT COS 90
0
PRINT COS 6 0
0.5
COT n → nCOTANGENT n → n
Funkcja cotangens. Argumentem jest wartość kąta w stopniach.
PRINT COT 45 1
PRINT COT 0
COT doesn't like 0 as input
DIV n n → n
Iloraz dwóch liczb (pierwszego parametru przez drugi). .
PRINT DIV 16 4
4
PRINT DIV 16 0
Can't divide by zero
INT n → n
Część całkowita liczby.
PRINT INT 6.789
6
PRINT INT -2.7
-3
INTEGER n → n
Patrz INT.
PRODUCT nn → n (PRODUCT n ...) → n
Iloczyn liczb, stanowiących parametry;
TO POTĘGA :x :wykl
IF :wykl = 0
[OP 1] OP PRODUCT :x P
OTĘGA :x :wykl - 1
END
PRINT 65536
POTĘGA 2 16
QUOTIENT n n → n
Patrz DIV
RANDOM n → n
Funkcja losowa o rozkładzie jednostajnym. Dla danego parametru naturalnego n wartością operacji jest losowa liczba naturalna z przedziału 0.. n-1 .
TO ZYGZAK :dlug
REPEAT :dlug [FD 10 +
RANDOM 90
LT RANDOM 360]
END
ZYGZAK 10
REMAINDER n n → n
Reszta z dzielenia pierwszego parametru przez drugi.
TO PARZYSTE :n
OP 0 = REMAINDER :n 2
END
PRINT PARZYSTE 666
TRUE
ROUND n → n
Zaokrąglenie parametru do najbliższej liczby całkowitej.
TO ZAOKR :x
OUTPUT (ROUND 100 * :x)
/ 100 END
PRINT ZAOKR 2/3 0.67
SIN n → n SINE n → n
Funkcja sinus. Argumentem jest wartość kąta w stopniach.
PRINT SIN 180
0
PRINT SIN 30
0.5
SORT n → n
Pierwiastek kwadratowy liczby nieujemnej, stanowiącej parametr.
PRINT SQRT 16 4
PRINT SQRT -3
SQRT doesn't like -3 as input
SUM n n→n (SUM n...)→n
Suma liczb, stanowiących parametry;
TO SUMA :lista.skladn
IF EMPTYP -.lista.skladn
[OP 03
OP SUM LAST :lista.skladn
SUMA
BL :lista.skladn END
PRINT SUMA READLIST
12345678
36
TAN n → nTANGENT n → n
Funkcja tangens. Argumentem jest wartość kąta w stopniach.
PRINT TAN 45 1
PRINT TAN 90
TAN doesn't like 90 as input
n*n →n
n/n →n
n + n →n
n - n →n
Cztery podstawowe operacje arytmetyczne: mnożenie, dzielenie, dodawanie i odejmowanie (wykonywane w tej kolejności). W celu zmiany kolejności wykonywania działań używa się nawiasów okrągłych.
PRINT 3+3/2
4.5
PRINT (3 + 3) / 2
3.2. Operacje logiczne
ALLOF p p → d (ALLOF p...) → p
Patrz AND
AND p p → p (AND p...) → p
Koniunkcja wyrażeń logicznych, stanowiących parametry operacji. (AND przyjmuje wartość TRUE, jeżeli wszystkie jego parametry mają wartość TRUE).
PRINT AND TRUE TRUE TRUE
PRINT (AND TRUE FALSE
TRUE TRUE)
FALSE
ANYOF p p → p (ANYOF p...)→ p
Patrz OR
NOT p → p
Zaprzeczenie wyrażenia logicznego, będącego parametrem.
TO MNIEJSZE.RÓWNE :x :y
OUTPUT NOT :x > :y
END
PR MNIEJSZE.RÓWNE 3
3 TRUE
OR p p → p (OR p...)→p
Alternatywa wyrażeń logicznych, stanowiących parametry operacji. (OR przyjmuje wartość FALSE, jeżeli wszystkie jego parametry mają wartość FALSE.
PRINT OR TRUE FALSE TRUE
PR OR OR TRUE FALSE OR
FALSE FALSE
TRUE
Operatory służące do porównywania liczb (w przypadku znaku równości — dowolnych dwóch obiektów.
PRINT 2=3 FALSE
PRINT 1.6E12 < 1.5E13
TRUE
3.3. Zmienne
MAKE s nsl
Nadanie zmiennej o nazwie podanej jako pierwszy parametr wartości określonej przez parametr drugi. Jeżeli dana nazwa zmiennej pojawia się po raz pierwszy, tworzona jest nowa zmienna o tej nazwie, a następnie nadawana jej żądana wartość.
MAKE "x "iks
MAKE :x [120 130 140 150] PRINT :x
iks
PRINT :iks
120 130 140 150
NAMEP s → p
Operacja określająca, czy dane słowo jest nazwą istniejącej zmiennej.
MAKE "y 130
PRINT NAMEP "y
TRUE
PRINT NAMEP "namep FALSE
THING s → nsl :s→nsl
Aktualna wartość zmiennej, której nazwa podana jest jako parametr.
MAKE "alfa "beta
MAKE :alfa "gamma
PRINT :alfa
beta
PRINT THING "alfa beta
PRINT THING :alfa gamma
PRINT THING THING "alfa gamma
PRINT THING THING :alfa
gamma has no value
PRINT ::alfa
:alfa has no value
THING? s → p
Patrz NAMEP
3.4. Listy i słowa
ASCII s → n
Numer podanego jako parametr znaku w kodzie ASCII.
TO SZYFR :slowo
IF EMPTYP:slowo [OP:słowo]
OP WORD CHAR 1 + ASCII
FIRST: slowo
SZYFR BF :slowo
END
PR SZYFR "mikrokomputer
njlsplpnqvufs
BUTFIRST sl → sl BF sl → sl
Operacja, której wynikiem jest podany jako parametr obiekt bez pierwszego elementu.
PRINT BUTFIRST "ucho
cho
PRINT BF [Dzien dobry !]
dobry !
PRINT BUTFIRST [] BUTFIRST doesn't like [] as input
BUTLAST sl → sl BL sl → sl
Operacja, której wynikiem jest dany obiekt bez ostatniego elementu.
TO ROZWIN :obiekt
IF EMPTYP :obiekt [STOP]
ROZWIN BUTLAST :obiekt
PRINT :obiekt
END
ROZWIN "kwiat
k
kw
kwi
kwia
kwiat
CHAR n→s
Znak kodu ASCII odpowiadający podanej jako parametr liczbie.
TO DUZE :slowo IF EMPTYP:słowo [OP:slowo] MAKE "znak FIRST :slowo MAKE "numer ASCII :znak OP WORD(IF AND(96<:numer) (123>:numer)[CHAR:numer-32] [:znak]) DUZE BF :slowo END
PRINT DUZE "Malutkie
MALUTKIE
COUNT sl → n
Ilość elementów danego obiektu.
PRINT COUNT [l 2 3 4 5] 5
PRINT COUNT 1234 4
PRINT COUNT SE 1 " 2
PRINT COUNT [] 0
EMPTYP sl→p
Operacja określająca, czy dany obiekt jest pusty (zawiera 0 elementów).
PRINT EMPTYP 0
FALSE
PRINT EMPTYP SE [] [] TRUE
PRINT EMPTYP SE [] " FALSE
PRINT EMPTYP " TRUE
EQUALP nsl nsl → p
Operacja określająca, czy dane dwa obiekty są równe.
PRINT EQUALP TRUE "TRUE TRUE
PRINT EQUALP TRUE "true FALSE
PR EQUALP [l []] SE 1 []
FALSE
FIRST sl →sl
Operacja, której wynikiem jest pierwszy element podanego jako parametr obiektu.
PRINT FIRST "LOGO
L
PRINT FIRST [Q W E R T Y] Q
PRINT FIRST []
FIRST doesn't like [] as input
FPUT nsl I → I
Operacja, której wynikiem jest lista utworzona poprzez włączenie obiektu podanego jako parametr pierwszy na początek listy określonej przez parametr drugi.
TO PRZEWINIETA :lista
OP FPUT LAST :lista BL
:lista
END
PRINT PRZEWINIĘTA [alfa beta gamma]
gamma alfa beta
ITEM n l → nsl
Operacja, której wynikiem jest określony przez pierwszy parametr element listy podanej jako parametr drugi.
TO ELT.LOSOWY :lista
OP ITEM 1 + RANDOM COUNT
:lista
:lista
END
REPEAT 3 [PRINT ELT.
LOSOWY [a b
c d]]
a
d
b
LAST sl → sl
Operacja, której wynikiem jest ostatni element podanego jako parametr obiektu.
TO ZENSKI :rzeczownik
OP MEMBERP LAST :rzeczownik [A a]
END
PRINT ZENSKI "szafa TRUE
PR ZENSKI "krzeslo FALSE
LIST nsl nsl→I (LIST nsl...) → I
Operacja tworząca listę, zawierającą podane jako parametry obiekty.
SHOW LIST 1 2
[l 2]
SHOW (LIST [] 2 [])
[[] 2 []]
LISTP nsl → s
Operacja określająca czy dany obiekt jest listą.
PRINT LISTP "Logo
FALSE
PRINT LISTP [Logo]
TRUE
LIST? nsl → p
Patrz LISTP
LPUT nsl I → I
Operacja, której wynikiem jest lista powstała przez dołączenie obiektu określonego przez parametr pierwszy na koniec listy podanej jako parametr drugi.
PRINT LPUT "dobry [Dzien]
Dzien dobry
PRINT LPUT [a b] [c d e] c d e [a b]
MAMBERP nsl I → p
Operacja określająca, czy obiekt podany jako parametr pierwszy jest elementem listy określonej przez parametr drugi.
PRINT MEMBERP [] []
FALSE
PR MEMBERP " []
FALSE
PRINT MEMBERP [] [[]]
TRUE
PRINT MEMBERP 12 [12 13 14]
TRUE
NUMBERP nsl → p
Operacja określająca, czy dany obiekt jest liczbą.
PRINT NUMBERP 2.78E9
TRUE
PRINT NUMBERP "232
TRUE
PRINT NUMBERP WORD 2 ".05
TRUE
NUMBER? nsl → p
Patrz NUMBERP
SENTENCE nsl nsl→ I (SE nsl...)→ I
Operacja tworząca listę z podanych jako parametry obiektów. Jeżeli któryś z parametrów jest listą, jej zewnętrzne nawiasy są usuwane.
SHOW SENTENCE 1 2
[1 2]
SHOW (SE [] 2 [])
[2]
WORD s s → s (WORD s...) → s
Operacja tworząca słowo złożone z podanych parametrów.
TO SKLEJONE :lista
IF EMPTYP :lista [OP " ]
OP WORD FIRST :lista SKLEJONE BF :lista END
PR SKLEJONE [mikro komputer -1 986]
mikrokomputer-1986
WORDP nsl→p
Operacja określająca, czy dany obiekt jest słowem.
PRINT WORDP "alfa
TRUE
PRINT WORD 234 TRUE
PRINT WORDP TRUE TRUE
PRINT WORDP [alfa beta]
FALSE
WORD? nsl → p
patrz WORDP
Marcin Waligórski

