Nice work @cuinjune. The tricky thing is getting it to interpret floats, as is consistent with s2l (and very useful)
It should be possible to accomplish this, along the lines I drafted here (fifth post). But it will get even more complicated if you want to include decimals (not to mention E numbers...)
One other comment: in your patch, you are using [list append] to iterate and accumulate lists. This works, but it gets exponentially slower the longer the list is, since the latest list is copied with every iteration. Try feeding your abstraction a list of several hundred atoms and see what happens!
For iterating, the best Vanilla solution I'm aware of is [list-abs/list-drip] (look here if you need a good explanation).
For accumulating, I think it's best to use [textfile]. I have an abstraction called "collect" which I use for this job which looks something like this:
When I tested this, I found that it works exponentially faster than the [list append] x [t a] method. But I'd be interested to hear if others have found an even better solution for list accumulation.