summaryrefslogtreecommitdiff
path: root/functions.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-29 00:06:51 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-29 00:06:51 +0000
commitb4ab528e1995ab7017b55a899d970feee0c74edb (patch)
treecfef38f331efeb82353f5fcfeb371ad22ab2de81 /functions.c
parentc1c3b27543305ed24a52d852fd4d0d5b9855f349 (diff)
Implement intersection ∩
Diffstat (limited to 'functions.c')
-rw-r--r--functions.c10
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);