astery
Here is the list and it is at the bottom of the table.
I would expect that <- would have a right associativity like =. Because in both operators when we match statements:
{:ok, _} = Some.function()
and
with {:ok, _} <- Some.function() do
# ...
end
Pattern is on the left side and one evaluated is on the right. So I’ve expected Right associativity.
What’s wrong with my reasoning?
Trending in Questions
Hello!
Suppose you are building workflow (order / task / payment) processing system with the following requirements:
Each workflow con...
New
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app?
Looking for hints regarding:
Addi...
New
Kia ora,
We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
Hi all, I wanted to ask how the community is dealing with post-release steps.
Today we have Ecto migrations, which make sure that the db...
New
Hello,
I have an Elixir backend that implements a custom protocol over TCP. I want to load test the backend and assess the performance o...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #blog-post
- #phoenix_html
- #iex
- #graphql
- #ai
- #genstage
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex










First 3 of 3 Posts
IvanIvanoff
Associativity plays a role when multiple operators are chained. It controls the order of grouping operands to operators with the same precedence.
=being with Right associativity means thata = b = 10will be evaluated as(a = (b = 10))and not as((a = b) = 10).-is also left associative, meaning that5 - 4 - 3is evaluated as((5 - 4) - 3) == -2. If it was right associative it would have been evaluated as(5 - (4 - 3)) == 4.When the operator is used a single time, the associativity does not play a role –
5 - 3 == 2no matter if-is left or right associative<-is left associative not only in the docs, but also in the parser. So there is no error in the documentation.I was not able to actually come up with an example where multiple
<-are chained, something like this does not work:If I had to guess before looking it up, I would have guessed that
<-is non-associative. Example for non associative operator is the unarynot. A singlenot trueis valid, but chaining multiplenots is not:not true not falseis a syntax error.cevado
i belive that
<-is left associative due to how it works when you use several of them in sequence, likesince I can use the result of the first
<-in the next<-statement. At least is how I understand it.IvanIvanoff
In these examples of
withandforthe comma,separates the expressions. The comma itself is left associative, which is what controls the order of evaluation.You can check that by replacing the left associative
<-with the right associative=and still being able to use the result of the previous results: