mirror of
https://github.com/kanaka/mal.git
synced 2024-09-11 21:57:38 +03:00
- Reorder README to have implementation list after "learning tool" bullet. - This also moves tests/ and libs/ into impls. It would be preferrable to have these directories at the top level. However, this causes difficulties with the wasm implementations which need pre-open directories and have trouble with paths starting with "../../". So in lieu of that, symlink those directories to the top-level. - Move the run_argv_test.sh script into the tests directory for general hygiene.
39 lines
789 B
Plaintext
39 lines
789 B
Plaintext
;; Testing basic Lua interop
|
|
|
|
;;; lua-eval adds the string "return " to the beginning of the evaluated string
|
|
;;; and supplies that to Lua's loadstring(). If complex programs are needed,
|
|
;;; those can be wrapped by an anonymous function which is called immediately
|
|
;;; (see the foo = 8 example below).
|
|
|
|
(lua-eval "7")
|
|
;=>7
|
|
|
|
(lua-eval "'7'")
|
|
;=>"7"
|
|
|
|
(lua-eval "123 == 123")
|
|
;=>true
|
|
|
|
(lua-eval "123 == 456")
|
|
;=>false
|
|
|
|
(lua-eval "{7,8,9}")
|
|
;=>(7 8 9)
|
|
|
|
(lua-eval "{abc = 789}")
|
|
;=>{"abc" 789}
|
|
|
|
(lua-eval "print('hello')")
|
|
;/hello
|
|
;=>nil
|
|
|
|
(lua-eval "(function() foo = 8 end)()")
|
|
(lua-eval "foo")
|
|
;=>8
|
|
|
|
(lua-eval "string.gsub('This sentence has five words', '%w+', function(w) return '*'..#w..'*' end)")
|
|
;=>"*4* *8* *3* *4* *5*"
|
|
|
|
(lua-eval "table.concat({3, 'a', 45, 'b'}, '|')")
|
|
;=>"3|a|45|b"
|