Hexsp
Jump to navigation
Jump to search
Hexsp is a programming language made by Otakuto. It is basically Lisp written in Hexspeak. Every code is written in hexadecimal numbers and it is supposed to resemble machine language.
Translations
Nil
hexsp> EE 33 lisp> ()
Space
hexsp> EE 00 33 lisp> ( )
Spaces
hexsp> 00 EE 00 00 33 00 lisp> ( )
Number
hexsp> 55 01 lisp> 1 hexsp> 55 01 01 lisp> 257
Negative number
hexsp> 22 01 lisp> -1 hexsp> 22 01 01 lisp> -257
Quote
hexsp> 99 EE 55 01 55 02 33 lisp> '(1 2) hexsp> EE 92 07 E0 EE 55 01 33 33 lisp> (quote (1))
Symbol
hexsp> DE AD BE EF lisp> DEADBEEF hexsp> 01 01 lisp> 0101 hexsp> 0A 0A lisp> 0A0A
True
hexsp> 77 lisp> t
Dotted Pair
hexsp> EE 55 01 11 55 02 33 lisp> (1 . 2)
hexsp> EE 55 01 11 EE 55 02 11 EE 33 33 33 lisp> (1 . (2 . ()))
Escape
hexsp> 55 FF 55 lisp> 85 hexsp> 55 FF FF lisp> 255
hexsp> 55 FF 00 lisp> 0
hexsp> 22 FF 00 lisp> 0
hexsp> AA FF 11 FF 22 FF 33 FF 55 FF 99 FF EE FF FF FF 00 BB lisp> AA1122335599EEFF00BB
Dictionary
car = CA 70
hexsp> EE CA 70 EE 55 01 33 33 01
cdr = CD 70
cons = C0 25
atom = A7 03
quote = 92 07 E0
write = 37 17 E0
hexsp> EE 37 17 E0 55 01 33 55 01
begin = BE 91 20
hexsp> EE BE 91 20 EE 00 EE 37 17 E0 EE 33 33 00 00 EE 37 17 E0 EE 33 33 00 33 33 EE 33 EE 33
eq = E9
add = AD D0
hexsp> EE AD D0 55 01 55 02 33 55 03
sub = 52 B0
setq = 5E 79
if = 1F
hexsp> EE 1F 00 77 00 55 01 55 02 33 55 01 hexsp> EE 1F 00 EE 33 00 55 01 55 02 33 55 02
defunc = DE F2 2C
hexsp> EE DE F2 2C 00 0F 00 EE 01 00 02 33 EE AD D0 00 01 00 02 33 33 EE 37 17 E0 EE 0F 00 55 01 55 02 33 33 55 03
Sample Code
This code will add from 1 to 100.
EE DE F2 2C 00 10 7A 00 EE 01 00 02 33 EE 1F EE E9 00 01 00 02 33 EE C0 25 00 02 EE 33 33 EE C0 25 00 01 EE 10 7A EE AD D0 00 01 00 55 01 33 02 33 33 33 33 EE DE F2 2C 00 F0 1D 00 EE 0F 00 A0 00 A5 33 EE 1F EE E9 00 A5 00 EE 33 33 A0 EE F0 1D 00 0F 00 EE 0F 00 A0 EE CA 70 00 A5 33 33 EE CD 70 00 A5 33 33 33 33 00 EE 37 17 E0 00 EE F0 1D 00 AD D0 00 55 FF 00 EE 10 7A 00 55 01 55 64 33 33 33
,which translates to this Lisp program:
(defunc iota (a b)(if(eq a b)(cons b ())(cons a(iota(add a 1)b)))) (defunc fold (s t u)(if(eq u ())t(fold s (s t(car u))(cdr u)))) (write (fold add 0 (iota 1 100)))