1.1 KiB
1.1 KiB
From Clojure to Janet
How to convert files
Comments
% s ; r # <esc>
called keyword property access
Use a macro:
- Select
\ \( : ret <esc>
- Record the macro:
Q n <esc> v e c get <esc> e e a <space> <esc> p <esc> Q
- Then just
q
until you've changed everything
Chars don't exist
- \char -> "char", e.g.
- \newline -> "\n", etc.
- \a -> "a"
Use mutable arrays and tables
Where data structures are mutable, add @
s.
Sets & tables
Sets don't exist in Janet. Use tables with values set to true
.
Strings -> number literals
- Clj uses
edn/read-string
; Janet usesparse-all
loop
-> defn recur
- Clj's
loop
is very different from Janet'sloop
- As a quick and dirty workaround, change it to an interior recursive function
- Janet has tail calls, so this is nearly as efficient (paying the overhead for creating the function)
- An optimization is to pull out these functions and declare them at the toplevel
current-char
Straight replacements:
- nth -> get
- assoc -> put
- conj -> array/push
- str -> string
- substr -> slice