From b4ab528e1995ab7017b55a899d970feee0c74edb Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Sat, 29 Jan 2022 00:06:51 +0000 Subject: =?UTF-8?q?Implement=20intersection=20=E2=88=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- functions.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'functions.c') 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, /* ⍪ */ @@ -1237,6 +1237,14 @@ fnUnion(Array *left, Array *right) return rundfn(L"⍺⍪⍵~⍺", nil, nil, left, 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) { -- cgit v1.2.3