Skip to content

Commit

Permalink
Add Dynamically Generating Atoms as an elixir til
Browse files Browse the repository at this point in the history
  • Loading branch information
jbranchaud committed Jul 7, 2016
1 parent ae12914 commit ebd901f
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
3 changes: 2 additions & 1 deletion README.md
Expand Up @@ -7,7 +7,7 @@ variety of languages and technologies. These are things that don't really
warrant a full blog post. These are mostly things I learn by pairing with
smart people at [Hashrocket](http://hashrocket.com/).

_446 TILs and counting..._
_447 TILs and counting..._

---

Expand Down Expand Up @@ -84,6 +84,7 @@ _446 TILs and counting..._
- [Append To A Keyword List](elixir/append-to-a-keyword-list.md)
- [Assert An Exception Is Raised](elixir/assert-an-exception-is-raised.md)
- [Create A Date With The Date Sigil](elixir/create-a-date-with-the-date-sigil.md)
- [Dynamically Generating Atoms](elixir/dynamically-generating-atoms.md)
- [Execute Raw SQL In An Ecto Migration](elixir/execute-raw-sql-in-an-ecto-migration.md)
- [Expose Internal Representation](elixir/expose-internal-representation.md)
- [List Functions For A Module](elixir/list-functions-for-a-module.md)
Expand Down
15 changes: 15 additions & 0 deletions elixir/dynamically-generating-atoms.md
@@ -0,0 +1,15 @@
# Dynamically Generating Atoms

> Atoms are constants where their name is their own value.
The use of atoms like `:ok` and `:error` show up all over the place in
Elixir. These are atoms that tend to be statically defined. Atoms can also
be dynamically defined using string interpolation.

For example, I can generate a handful of atoms by mapping over a range of
integers.

```elixir
> Enum.map(1..5, &(:"some_atom_#{&1}"))
[:some_atom_1, :some_atom_2, :some_atom_3, :some_atom_4, :some_atom_5]
```

0 comments on commit ebd901f

Please sign in to comment.