Mapreduce和Julia中带和的过滤器有什么区别?

Mapreduce和Julia中带和的过滤器有什么区别?,julia,Julia,Julia版本:1.4.0 我有这两个片段,我认为它们应该是等价的,但它们产生了非常不同的结果。我错过了什么 样本是包含1000000个元素的向量{Float64}。此外,这是后验分布的随机抽样 mapreduce(p -> p < 0.5 ? 1 : 0, +, samples) / N sum(filter(x-> x<0.5, samples))/N mapreduce(p->px您的mapreduce是map将每个元素ping到1或0。相反,您希望将每个元素映

Julia版本:1.4.0

我有这两个片段,我认为它们应该是等价的,但它们产生了非常不同的结果。我错过了什么

样本是包含1000000个元素的向量{Float64}。此外,这是后验分布的随机抽样

mapreduce(p -> p < 0.5 ? 1 : 0, +, samples) / N

sum(filter(x-> x<0.5, samples))/N
mapreduce(p->p<0.5?1:0,+,样本)/N

sum(filter)(x->x您的
mapreduce
map
将每个元素ping到
1
0
。相反,您希望将每个元素映射到
p
0

julia> N = 1000000;

julia> samples = randn(1000000);

julia> mapreduce(p -> p < 0.5 ? 1 : 0, +, samples) / N
0.690901

julia> mapreduce(p -> p < 0.5 ? p : -0.0, +, samples) / N
-0.35058272143615

julia> sum(filter(x-> x<0.5, samples))/N
-0.35058272143615005
julia>N=1000000;
julia>samples=randn(1000000);
julia>mapreduce(p->p<0.5?1:0,+,样本)/N
0.690901
julia>mapreduce(p->p<0.5?p:-0.0,+,样本)/N
-0.35058272143615

julia>sum(filter)(x->xSorry,但我还没有完全理解。什么是´´?´´´´´以及如何使用它?这就是问题所在。