# A comparison operator (\>, \<, ==...) as a function argument?

**URL:** <https://discourse.julialang.org/t/a-comparison-operator-as-a-function-argument/91858>\
**Category:** General Usage\
**Tags:** function\
**Created:** [December 19, 2022, 3:23pm UTC](https://discourse.julialang.org/t/a-comparison-operator-as-a-function-argument/91858 "2022-12-19T15:23:50Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fred](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fred/32/14175_2.png) [@Fred](https://discourse.julialang.org/u/Fred)\
**Post date:** [December 19, 2022, 3:23pm UTC](https://discourse.julialang.org/t/a-comparison-operator-as-a-function-argument/91858/1 "2022-12-19T15:23:51Z")

</div>

Hi !

Is there a way to use a a comparison operator (\>, \<, ==…) as a function argument ?

for example

```julia
f(2,5,>=)

function compare(x,y, operator)::Bool
return x operator y # 2>=5, return false

```

Thanks !

---

<div class="post-metadata">

**Author:** ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Post date:** [December 19, 2022, 3:26pm UTC](https://discourse.julialang.org/t/a-comparison-operator-as-a-function-argument/91858/2 "2022-12-19T15:26:40Z")

</div>

The trick here is to remember that any operator can be rewritten as a function call with parentheses.

So

```julia
f(a, b, operator) = operator(a,b)

f(1,2, >)
# false
f(2,2, ==)
# true
```

---

<div class="post-metadata">

**Author:** ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)\
**Post date:** [December 19, 2022, 3:26pm UTC](https://discourse.julialang.org/t/a-comparison-operator-as-a-function-argument/91858/3 "2022-12-19T15:26:55Z")

</div>

Those are normal functions as well so you can do it like this:

```julia
julia> compare(f,x,y) = f(x,y)
compare (generic function with 1 method)

julia> compare(>=,2,5)
false

```

but this seems mostly not necessary. You could just as well use `map(f,x,y)` which already exists.

---

<div class="post-metadata">

**Author:** ![Fred](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fred/32/14175_2.png) [@Fred](https://discourse.julialang.org/u/Fred)\
**Post date:** [December 19, 2022, 3:29pm UTC](https://discourse.julialang.org/t/a-comparison-operator-as-a-function-argument/91858/4 "2022-12-19T15:29:40Z")

</div>

@mrufsvold , @tbeason very interesting ! Thanks !
