Julia:函数式编程:根据另一个值数组验证数组条目

Julia: Functional Programming :Validate array entries against another array of values

我想创建一个单衬里来根据值数组过滤数组。这意味着我想循环遍历 A 的每个元素并与 B 的元素进行比较。

例如:喝什么是安全的?

A = ["water";"beer";"ammonia";"bleach";"lemonade"]
B = ["water";"beer"; "lemonade"]

我拼凑了这个怪物,但我希望有人有更优雅的方法:

julia> vcat(filter(w->length(w)!= 0, map(y->filter(z->z!="",(map(x-> begin x==y ? x = y : x = ""  end,B))),A))...)
3-element Array{String,1}:
 "water"
 "beer"    
 "lemonade"

您可以使用filter to iterate over the available drinks and in检查当前元素是否在安全饮料列表中:

julia> drinks = ["water", "beer", "bleach"];

julia> safe = ["beer", "lemonade", "water"];

julia> filter(in(safe), drinks)
2-element Array{String,1}:
 "water"
 "beer"

filter 方法非常巧妙。您还可以使用理解:

[a for a in A if a in B]