-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Macros #18
Macros #18
Conversation
Сегодня запушу ещё несколько частей |
meta/macros.md
Outdated
|
||
Макросы в Эликсире определяются через `defmacro/2`. | ||
|
||
> В этой главе мы будет использовать файлы вместо запуска примеров кода в IEx. Всё потому, что эти примеры будут всего лишь в несколько строк кода, поэтому их ввод в IEx будет контрпродуктивным. Следовательно, вы должны иметь возможность проверять эти примеры, записывая их в файл `macros.exs` и запускать с помощью `elixir macros.exs` или `iex macros.exs`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не хватает запятой после деепричастного оборота "записывая их в файл macros.exs
"
meta/macros.md
Outdated
Sample.quoted #=> {:x, [line: 3], Sample} | ||
``` | ||
|
||
Обратите внимание, что третьим элементом в маскирующей переменной является атом `Sample`, вместо `nil`, который отмечает переменную как поступающую из модуля `Sample`. Именно поэтому Эликсир рассматривает эти две переменные как исходящие из разных контекстов и следовательно обрабатывает их соответственно. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"следовательно" нужно выделить запятыми с обеих сторон
meta/macros.md
Outdated
[IEx.Helpers, Integer, Kernel, Kernel.Typespec] | ||
``` | ||
|
||
Многие функции в модуле `Macro` расчитывают на среду. Подробнее об этих функциях вы можете узнать в [документации модуля `Макрос`](https://hexdocs.pm/elixir/), а также узнать больше о среде компиляции в [документации для `Macro.Env`](https://hexdocs.pm/elixir/). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
в случае с фразой "документации модуля Макрос
" перевод названия модуля не нужен, следует вернуть туда "Macro
"
meta/macros.md
Outdated
|
||
Многие функции в модуле `Macro` расчитывают на среду. Подробнее об этих функциях вы можете узнать в [документации модуля `Макрос`](https://hexdocs.pm/elixir/), а также узнать больше о среде компиляции в [документации для `Macro.Env`](https://hexdocs.pm/elixir/). | ||
|
||
## Частные макросы |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Приватные по-моему будет более очевидно
meta/macros.md
Outdated
|
||
* Макросы гигиеничны: по умолчанию, переменные, определённые внутри макроса, не будут влиять на код пользователя. Кроме того, вызовы функций и псевдонимы, доступные в контексте макросов, не будут протекать в контексте пользователя. | ||
|
||
* Макросы лексические: невозможно вводить код или макросы глобально. Чтобы использовать макрос, вам необходимо явно `потребовать` или `импортировать` модуль, определяющий макрос. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
require
и import
- это ключевые слова из исходного кода, их не нужно переводить
No description provided.