summaryrefslogtreecommitdiff
path: root/operators.c
diff options
context:
space:
mode:
Diffstat (limited to 'operators.c')
-rw-r--r--operators.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/operators.c b/operators.c
index c46e627..8feda34 100644
--- a/operators.c
+++ b/operators.c
@@ -79,8 +79,13 @@ opSwitch(Datum *lefto, Array *left, Array *right)
Array *
opSelfReference1(Datum *lefto, Array *left, Array *right)
{
- throwerror(L"∆", ESyntax);
- return nil;
+ DfnFrame *dfn = getcurrentdfn();
+ if(dfn)
+ return rundfn(dfn->code, lefto, nil, left, right);
+ else{
+ throwerror(nil, ESyntax);
+ return nil;
+ }
}
/* Dyadic operators */
@@ -174,6 +179,11 @@ opOver(Datum *lefto, Datum *righto, Array *left, Array *right)
Array *
opSelfReference2(Datum *lefto, Datum *righto, Array *left, Array *right)
{
- throwerror(L"⍙", ESyntax);
- return nil;
+ DfnFrame *dfn = getcurrentdfn();
+ if(dfn)
+ return rundfn(dfn->code, lefto, righto, left, right);
+ else{
+ throwerror(nil, ESyntax);
+ return nil;
+ }
} \ No newline at end of file