Skip to content
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

Merged
merged 3 commits into from
Sep 17, 2017
Merged

Macros #18

merged 3 commits into from
Sep 17, 2017

Conversation

tyulpan
Copy link
Contributor

@tyulpan tyulpan commented Sep 16, 2017

No description provided.

@tyulpan
Copy link
Contributor Author

tyulpan commented Sep 16, 2017

Сегодня запушу ещё несколько частей

meta/macros.md Outdated

Макросы в Эликсире определяются через `defmacro/2`.

> В этой главе мы будет использовать файлы вместо запуска примеров кода в IEx. Всё потому, что эти примеры будут всего лишь в несколько строк кода, поэтому их ввод в IEx будет контрпродуктивным. Следовательно, вы должны иметь возможность проверять эти примеры, записывая их в файл `macros.exs` и запускать с помощью `elixir macros.exs` или `iex macros.exs`.
Copy link
Member

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`. Именно поэтому Эликсир рассматривает эти две переменные как исходящие из разных контекстов и следовательно обрабатывает их соответственно.
Copy link
Member

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/).
Copy link
Member

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/).

## Частные макросы
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Приватные по-моему будет более очевидно

meta/macros.md Outdated

* Макросы гигиеничны: по умолчанию, переменные, определённые внутри макроса, не будут влиять на код пользователя. Кроме того, вызовы функций и псевдонимы, доступные в контексте макросов, не будут протекать в контексте пользователя.

* Макросы лексические: невозможно вводить код или макросы глобально. Чтобы использовать макрос, вам необходимо явно `потребовать` или `импортировать` модуль, определяющий макрос.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

require и import - это ключевые слова из исходного кода, их не нужно переводить

@rtrv rtrv merged commit 4f95303 into wunsh:master Sep 17, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants