Джулия - проверяйте поэлементно, находятся ли элементы вектора x в векторе y - PullRequest
0 голосов
/ 10 февраля 2019

Я хочу проверить поэлементно (или передать), находятся ли элементы вектора x в векторе y в Джулии, как то, что делает функция checkin:

x = ["one", "two", "three", "four"]
y = ["two", "three", "five", "four"]

function checkin(x,y)
    for i = 1:length(y)
        if y[i] ∈ x
            println(true)
        else 
            println(false)
        end
    end
end
checkin(x,y)

output:

true
true
false
true

Если я наберу

x .∈ y

или

x .in y

Я получаю сообщение об ошибке

Как часто, я уверен, что существует гораздо более простой способсделать это как написание функции из 9 строк, но я не смог ее найти

1 Ответ

0 голосов
/ 10 февраля 2019

Использование:

in.(y, Ref(x))

Вы должны обернуть x в Ref или написать (x, ) или [x], чтобы трансляция всегда принимала x и не повторялась по ней.

Обратите внимание, что я написал это так, что вы проверяете, находится ли y[i] в x для i in eachindex(y), потому что именно так была сделана ваша эталонная реализация.

...