# Add a 2-arg flavor, argmax(f, domain)

**URL:** <https://discourse.julialang.org/t/add-a-2-arg-flavor-argmax-f-domain/11720>\
**Category:** Internals & Design\
**Created:** [June 16, 2018, 4:35pm UTC](https://discourse.julialang.org/t/add-a-2-arg-flavor-argmax-f-domain/11720 "2018-06-16T16:35:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Drew\_Robson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/drew_robson/32/44529_2.png) [@Drew\_Robson](https://discourse.julialang.org/u/Drew_Robson)\
**Post date:** [June 16, 2018, 4:35pm UTC](https://discourse.julialang.org/t/add-a-2-arg-flavor-argmax-f-domain/11720/1 "2018-06-16T16:35:10Z")

</div>

With the rename to `argmax`, and dims now a kwarg, it seems very tempting to me to define a 2-arg flavor, argmax(f, domain).

This would be equivalent to x[argmax(f(x) for x=x)] but argmax(f, x) is just so nice. Here, x could be any iterable and argmax(f, x) would quite literally implement the mathematical definition of argmax. Has this been considered?

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [June 16, 2018, 4:41pm UTC](https://discourse.julialang.org/t/add-a-2-arg-flavor-argmax-f-domain/11720/2 "2018-06-16T16:41:06Z")

</div>

Seems like a good idea. Would you be willing to open an issue or make a PR?

---

<div class="post-metadata">

**Author:** ![Drew\_Robson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/drew_robson/32/44529_2.png) [@Drew\_Robson](https://discourse.julialang.org/u/Drew_Robson)\
**Post date:** [June 16, 2018, 5:20pm UTC](https://discourse.julialang.org/t/add-a-2-arg-flavor-argmax-f-domain/11720/3 "2018-06-16T17:20:17Z")

</div>

Ok I’ve filed an [issue](https://github.com/JuliaLang/julia/issues/27613) to at least get the ball rolling. I will try to make a PR. Naively, it seems like a good first issue (second issue? I think it makes sense for `argmax` to support generators first). Maybe someone will beat me to it, but I’ll give it a shot.

---

<div class="post-metadata">

**Author:** ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)\
**Post date:** [June 16, 2018, 5:33pm UTC](https://discourse.julialang.org/t/add-a-2-arg-flavor-argmax-f-domain/11720/4 "2018-06-16T17:33:11Z")

</div>

What is `domain` here?

---

<div class="post-metadata">

**Author:** ![mzaffalon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mzaffalon/32/214168_2.png) [@mzaffalon](https://discourse.julialang.org/u/mzaffalon)\
**Post date:** [June 16, 2018, 5:40pm UTC](https://discourse.julialang.org/t/add-a-2-arg-flavor-argmax-f-domain/11720/5 "2018-06-16T17:40:47Z")

</div>

> [@dpsanders](#):
>
> What is `domain` here?

The iterable `x`.
