print not gt 3 1
make "d read
1234dd
print isname "d
print :d
make "x eq :d "1234dd
print :x
erase "d
print not isname "d

make "a 2
print isname "a
erase "a
print isname "a

make "a 5
make "b 3
make "c :b
print gt "a "b
print gt :a :b
print lt :a :b
print eq :a :b
print eq :b :c
print and gt :a :b eq :b :c
print or gt :b :a eq :b :c
print not gt :a :b
print or gt :b :a not eq :b :c

make "testlist [print gt :a :b]
run :testlist
make "a 2
run :testlist

make "a 1
run [make "a add :a 1 print :a]
print :a

if gt :a :b [print "A] [print "B]

print if eq :a :b [1] [0]

print isnumber "2
print isnumber "a
print isnumber :a
print isword :a
print isword "a
print islist "testlist
print islist :testlist
print isbool run :testlist

print isempty :testlist
print isempty "a
print isempty "d

make "a 3
make "a add :a 4
make "f [
	[a]
	[return add mul :a :a 1]
]
print f 3
make "f
[
	[]
	[print "a]
]
f
make "n 5
make "f [
	[n]
	[
		if lt :n 2
			[return 1]
			[return mul :n f sub :n 1]
	]
]
print f :n
print :n
make "let [
	[__a __b]
	[
		make :__a :__b
		export :__a
	]
]
let "a 6
print :a
make "a 1
make "repeat [
    [n s]
    [
		if eq :n 0 
			[] 
			[run :s repeat sub :n 1 :s]
	]
]
repeat 4 [make "a add :a 1]
print :a
make "n 5
make "factorial [
	[n]
	[
		if lt :n 2
			[return 1]
			[return mul :n factorial sub :n 1]
	]
]
print factorial :n
print :n
make "gcd [
    [a b]
    [
        if eq :b 0
            [return :a]
            [return gcd :b mod :a :b]
    ]
]
print gcd 18 14
print gcd 18 13
