diff options
-rw-r--r-- | eval.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -135,6 +135,7 @@ strand(Datum left, Datum right) { traceprint("Stranding (%d %d)\n", left.array->stranded, right.array->stranded); Datum result; + result.shy = 0; Array *leftarr = left.array->stranded ? left.array : fnEnclose(left.array); Array *rightarr = right.array->stranded ? right.array : fnEnclose(right.array); result.tag = ArrayTag; @@ -183,6 +184,7 @@ dyadfun(Datum left, Datum right) { traceprint("Applying left argument to function\n"); Datum result; + result.shy = 0; result.tag = BoundFunctionTag, result.func = right.func; result.func.left = left.array; @@ -198,6 +200,7 @@ parens(Datum left, Datum right) Datum *result = eval(&left.stmt); if(result[0].tag == ArrayTag) result[0].array->stranded = 0; + result[0].shy = 0; return result[0]; /* TODO handle error if ntoks != 1 */ } |