diff options
author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-26 09:40:50 +0000 |
---|---|---|
committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-26 09:40:50 +0000 |
commit | bcaf7f25f42b21067a26895e097ada73765ba7d5 (patch) | |
tree | ccfb887cf08619c17b3afa3b517bfc3dcdfa18ad /eval.c | |
parent | 57a86f761605b6261d1045558c9cb7c83d723b60 (diff) |
Implement a new "mixed" type which can be either of the three scalar types: int, float, rune. This allows scalar arrays with mixed scalar types
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -164,9 +164,11 @@ strand(Datum left, Datum right) result.shy = 0; Array *leftarr = left.array->stranded ? fnSame(left.array) : fnEnclose(left.array); Array *rightarr = right.array->stranded ? fnSame(right.array) : fnEnclose(right.array); + Array *tmp = fnCatenateFirst(leftarr, rightarr); result.tag = ArrayTag; - result.array = fnCatenateFirst(leftarr, rightarr); + result.array = simplifyarray(tmp); result.array->stranded = 1; + freearray(tmp); freearray(leftarr); freearray(rightarr); return result; |