diff options
author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-29 00:06:51 +0000 |
---|---|---|
committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-29 00:06:51 +0000 |
commit | b4ab528e1995ab7017b55a899d970feee0c74edb (patch) | |
tree | cfef38f331efeb82353f5fcfeb371ad22ab2de81 /functions.c | |
parent | c1c3b27543305ed24a52d852fd4d0d5b9855f349 (diff) |
Implement intersection ∩
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); |