Exporting a Lua-array
Opened this issue · 1 comments
s5bug commented
The C++ side expects { names = { "bob", "joe" } }
. With a linked-list, I get incorrect results:
let names = [ "bob", "joe" ]
do
local Nil = { __tag = "Nil" }
local names = {
{
_1 = "bob",
_2 = {
{ _1 = "joe", _2 = Nil },
__tag = "Cons"
}
},
__tag = "Cons"
}
return { names = names }
end
and with array
,
open import "data/array.ml"
let names = from_list [ "bob", "joe" ]
The Lua code is too long to include, but names[1]
evaluates to a table (with a length
and backing
field) instead of "bob"
.
s5bug commented
If I have time I might try and figure out a solution to this. Ideally, the syntax to create an array "makes sense" (i.e. no function calls the user has to remember, and something like [|
and |]
instead) and the array is literally just a Lua array value.
Is the former possible with existing features?
Is the latter possible by just changing array.ml
in prelude to not store length?