renanmuniz

renanmuniz

[newbie here] Strange caracter while using Enum.chunk_every command in iex

Hi people!
I’ve just started learning Elixir this week.

I executed this command in iex and the console output was really strange, could anyone tell me why?

Command:

Enum.chunk_every([1,2,3,4,5,6,7,8,9,10,11,12,13,14], 2)

Return:

[[1, 2], [3, 4], [5, 6], ~c"\a\b", ~c"\t\n", ~c"\v\f", [13, 14]]

What happened to the numbers 7,8,9,10,11 and 12?

Thank you all and have a great day!

Marked As Solved

shawn_leong

shawn_leong

Hey @renanmuniz,

What’s happening is that [7,8], [9,10], [11, 12] are being interpreted as Charlists.

A charlist is a list of integers where all the integers are valid code points.

To see it as non-charlists, you can try piping it the result of your Enum.chunk_every/2 into an inspect/2 function.

inspect(result, charlists: :as_list)

Also Liked

LostKobrakai

LostKobrakai

If you’re interested in the underlying integer values, yes. The problem is that erlang (being the system underlying elixir) does use charlists for text, which you generally also want to be able to read (and not see a list of numbers). Therefore elixir uses a heuristic to figure out which one you might be interested in. That heuristic is imperfect, but better than not having it.

You can find that discussed more elaborately in the docs: List — Elixir v1.20.2

smathy

smathy

*inspect: [charlists: :as_list]

dimitarvp

dimitarvp

Yes, kind of. Though in real production systems you want logging and telemetry traces / spans.

As for development environment, you can just create the file .iex.exs in your project’s root directory and put this there:

IEx.configure(inspect: [charlists: :as_list])

And you’ll have that behaviour for your each local iex session.

Last Post!

dimitarvp

dimitarvp

Thanks, corrected.

Where Next?

Popular in Questions Top

ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
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
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New

Other popular topics Top

ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement