diff options
Diffstat (limited to 'functions.c')
-rw-r--r-- | functions.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/functions.c b/functions.c index 6e0c6b6..ed0fb36 100644 --- a/functions.c +++ b/functions.c @@ -105,7 +105,7 @@ fndyad dyadfunctiondefs[] = { fnMembership, /* ∊ */ 0, /* ⍷ */ fnUnion, /* ∪ */ - 0, /* ∩ */ + fnIntersection, /* ∩ */ fnExcluding, /* ~ */ fnCatenateLast, /* , */ fnCatenateFirst, /* ⍪ */ @@ -1238,6 +1238,14 @@ fnUnion(Array *left, Array *right) } Array * +fnIntersection(Array *left, Array *right) +{ + if(left->rank > 1 || right->rank > 1) + throwerror(nil, ERank); + return rundfn(L"(⍺∊⍵)⌿⍺", nil, nil, left, right); +} + +Array * fnExcluding(Array *left, Array *right) { return rundfn(L"(~⍺∊⍵)⌿⍺", nil, nil, left, right); |