mirror of
https://github.com/onkelbeh/cheatsheets.git
synced 2026-09-09 22:49:38 +02:00
Update
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: Elixir metaprogramming
|
||||
category: Elixir
|
||||
---
|
||||
|
||||
## Kernel
|
||||
|
||||
Most of these magic is defined in [Kernel.SpecialForms](http://devdocs.io/elixir/elixir/kernel.specialforms).
|
||||
|
||||
### Pseudo-variables
|
||||
|
||||
```elixir
|
||||
__DIR__ # current dir
|
||||
__MODULE__ # current module
|
||||
__CALLER__ # caller of the function
|
||||
```
|
||||
|
||||
### [`__ENV__`](http://devdocs.io/elixir/elixir/kernel.specialforms#__ENV__/0)
|
||||
|
||||
```elixir
|
||||
Map.keys(__ENV__)
|
||||
[:__struct__, :aliases, :context, :context_modules, :export_vars, :file,
|
||||
:function, :functions, :lexical_tracker, :line, :macro_aliases, :macros,
|
||||
:module, :requires, :vars]
|
||||
```
|
||||
|
||||
```elixir
|
||||
__CALLER__.module |> Module.definitions_in |> IO.inspect
|
||||
```
|
||||
|
||||
```elixir
|
||||
apply(Enum, :reverse, [[1, 2, 3]])
|
||||
```
|
||||
Reference in New Issue
Block a user