# Setdiff doesn't work

**URL:** https://discourse.julialang.org/t/setdiff-doesnt-work/9029
**Category:** General Usage
**Created:** [February 13, 2018, 6:47am UTC](https://discourse.julialang.org/t/setdiff-doesnt-work/9029 "2018-02-13T06:47:03Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Qiyamah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/qiyamah/32/2660_2.png) [@Qiyamah](https://discourse.julialang.org/u/Qiyamah)
#### Post date: [February 13, 2018, 6:47am UTC](https://discourse.julialang.org/t/setdiff-doesnt-work/9029/1 "2018-02-13T06:47:03Z")

</div>

```nohighlight
julia> struct XX
           x::Int
           y::Float64
       end

julia> a = [XX(1,2.1),XX(2,3.1),XX(3,4.2)]
3-element Array{XX,1}:
 XX(1, 2.1)
 XX(2, 3.1)
 XX(3, 4.2)

julia> b = [XX(1,2.2),XX(2,3.2),XX(3,4.3)]
3-element Array{XX,1}:
 XX(1, 2.2)
 XX(2, 3.2)
 XX(3, 4.3)

function diff_fields(a::Vector{XX},b::Vector{XX})
                    Base.:(==)(x::XX,y::XX)= x.x == y.x
                    setdiff(a,b)
              end
diff_fields (generic function with 1 method)

julia> diff_fields(a,b)
2-element Array{XX,1}:
 XX(1, 2.1)
 XX(2, 3.1)

```

It should have returned , but it didn’t. what is going wrong here?  
Thanks

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [February 13, 2018, 7:40am UTC](https://discourse.julialang.org/t/setdiff-doesnt-work/9029/2 "2018-02-13T07:40:04Z")

</div>

You need to define a corresponding `hash` function.
