massimo

massimo

How difficult would it be to add the infix notation à la Haskell?

How difficult would it be to add the infix notation à la Haskell?

I think it could improve readability on several occasions

For example

rem(5, 3)

could be written as

5 `rem` 3

or

 Enum.into(list, %{})
 list |> Enum.into(%{})

could become

list `Enum.into` %{}

Most Liked

josevalim

josevalim

Creator of Elixir

Even if it more readable in some cases, we need very strong reasons to add yet another way of doing things to the language, and I am afraid we don’t have enough pros here to justify it, especially because “more natural” and “readability” mostly boils down to personal preference.

Such feature will complicate the grammar and understanding of the language. If we add it, now every team will ask themselves: when do we use the infix notation? Should we always use it? Never use it? And this is time better spent elsewhere.

28
Post #6
peerreynders

peerreynders

That’s an entirely subjective judgement.

In my personal view Haskell got a bit sidetracked from “lambda calculus” by trying to mimic “mathematical notation”.

What’s so special about functions of arity 2 that they deserve some special place in the universe to be “promoted to operators”? Functions are simple, operators merely confuse the issue (then there is the ternary operator - but there can’t be an infix notation for that).

And I’m fully aware that my opinion is informed, coloured, biased from Clojure (i.e. Lisp) - what can be more simple than (fn a b c d)?

(+ a b) may not look very mathematical but it conforms in a world built on functions …

12
Post #3
rvirding

rvirding

Creator of Erlang

Parentheses rule! :grinning: And it is simple and extremely consistent as everything has the same format.

Last Post!

dorgan

dorgan

Is that really more clear/expressive than this?

fn x ->
  x
  |> Binary.new!()
  |> then(& &1.raw)
  |> B.mk_url!()
end

or even

fn x ->
  binary = Binary.new!(x)
  B.mk_url(binary.raw)
end

I guess it’s a matter of preference but the only thing valuable I see in your example is map as a more general(as in generic functor map) instead of just Enum.map.

I get the value of a Functor and maybe even Monad or Monoid in your codebase if you enjoy these generalised operations in your codebase, but when it comes to functional composition I find the examples in this thread rather alien and fail to see what’s so pragmatic about it in this language.

Where Next?

Popular in Discussions Top

PragTob
Hey everyone, this has been on my mind for some time and I’d love your input on it! TLDR: I feel like maps are superioer for storing and...
New
rms.mrcs
A couple of days ago I was discussing with a friend about different approaches to write microservices. He said that if he was going to w...
New
acrolink
How does the two languages compare when it comes to server side application development? Any experiences or ideas? Thank you.
New
mikl
I wanted to capitalize a string, and tried using String.capitalize(). That generally works well, until you try to capitalize a word like...
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New
matthias_toepp
I’d love to hear what people think about Wisp, the new Gleam web framework started by Gleam’s primary creator Louis Pilfold. Gleam, alon...
New
arcanemachine
https://nitter.net/josevalim/status/1744395345872683471 https://twitter.com/josevalim/status/1744395345872683471
New

Other popular topics Top

baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New

We're in Beta

About us Mission Statement