DOKL57
Hi all, the question seems like a simple question, but it has thrown me for a long time. I have a loop in which I loop through an element of the map list and I need to add the current item to the new list.
For a better understanding, here is a simpler example:
current_list = []
for x <- 1..10 do
current_list = [x | current_list]
end
I expect to get [1,2,3,4,5,6,7,8,9,10] in current_list, but got
What am I doing wrong? Thanks in advance!
Trending in Questions
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
Hello,
I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind.
However, when I launch mix phx.server, I get an error...
New
Hi everyone,
I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding.
I sta...
New
I’m working on a small exercise involving update_in/3, and I came up with this solution:
data = %{
name: "Periodic Table",
category:...
New
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication):
toke...
New
Is there any way to avoid the Hologram compiler running when using iex? It seems like the front-end code could potentially be disregarded...
New
** (ArgumentError) expected :max_attempts to be a positive integer, got: {:@, [line: 10, column: 19], [{:max_attempts, [line: 10, column:...
New
Other Trending Topics
Edit: 2026 May 15 - This post is archived.
Mob is alive!!
Main docs: mob v0.7.11 — Documentation
A bit of explanation for the slightly c...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ai
- #ecto-query
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #metaprogramming
- #hex











Showing Posts 1 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
Aetherus
The
current_listinside the for-loop is not the same variable as thecurrent_listoutside the for-loop. Actually, thecurrent_listinside each loop is different.I bet you’ve heard that in Elixir, everything is immutable, which means if a list is empty, it stays empty for the rest of its life. You can’t stuff things into it, or remove things from it, or change any of its elements.
So, the correct way is:
or
kokolegorille
or simply
Aetherus
I guess the author may have put something in the
current_listbefore starting the loopIf the
current_listis initially empty, thenEnum.reverse(1..10)should be the shortest code.derek-zhou
IMHO, newbies should stay away from
if,fororwithuntil being comfortable with functional style programming. They are only syntactical sugar to make things shorter; they don’t provide any vital functionalities.christhekeele
IDK,
ifis such a common core construct it feels like it would be off-putting to try to learn a lang where that was discouraged. In fact I’d say it’s the ideal candidate from which to learn this functional scoping lesson!LostKobrakai
Lexical scoping isn’t limited to functional languages. Many languages use that type of scoping.
Usually people don’t expect do/end blocks to be scope boundries though.
christhekeele
Right! The combination of lexical scoping, expression return values, resulting in do/end variables being local and needing to assign out of them, is what’s the useful take-away.
I think
ifis great lesson in this, becauseelsecase; they will have acquired the understanding they need to succeedderek-zhou
A
cond do ...will raise if none of the conditions hold true. This is safer for newbies thanifthat don’t have aelseclause.NobbZ
Yes, though paired with immutability and implicit shadowing it is sometimes a bit weird.
If you do not know about the implicit shadowing, which is dropped again after leaving the
ifs lexical scope, then it is not obvious what happens.The problem is not the scoping, its the shadowing, which is often seen as a bad design decision.
christhekeele
I suppose the compiler could warn on reassignment of shadowed variables. There are legitimate use-cases for it though, especially in more involved conditional bodies. Especially in reduces!