summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index ab5dfc7..ae7dbd7 100644
--- a/eval.c
+++ b/eval.c
@@ -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 */
}