Hey everyone!

I propose adding `Function.const/2` as a function which for argument `x`, 
would always return `x`.

```
@spec const(any(), any()) :: any()
def const(_original_value, new_value), do: new_value
```

This is somewhat similar to the new `Function.identity/1` in that it may 
seem like we've easily lived without it, but it does afford some more 
concise/semantic ways to represent a common pattern.

```
fn _ -> something_else() end
```

This would become:

```
const(something_else())
```

```
Enum.map([0,1,2,3], &Function.const/2)
```

I'm new to Elixir, so I'm not sure of the weight that the name `const` 
would carry, so there could be a more acceptable name.

If accepted, I'd be happy to create a PR!

Equivalents in other languages:

- Haskell: 
https://hackage.haskell.org/package/base-4.12.0.0/docs/Data-Function.html#v:const
- PureScript: 
https://pursuit.purescript.org/packages/purescript-const/4.1.0/docs/Data.Const
- Elm: https://package.elm-lang.org/packages/elm/core/latest/Basics#always
- Scala: 
https://www.scala-lang.org/api/current/scala/Function$.html#const[T,U](x:T)(y:U):T
- Idris: 
https://www.idris-lang.org/docs/current/prelude_doc/docs/Prelude.Basics.html#Prelude.Basics.const

Thanks for your time.

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/576949a3-93e2-4117-b1f1-ab4621f10e88%40googlegroups.com.

Reply via email to