Skip to content
This repository was archived by the owner on Jan 5, 2025. It is now read-only.

Commit b4a5049

Browse files
authored
06_macros (#7)
* 翻訳開始 * 翻訳完了 * 表現修正
1 parent 89541a1 commit b4a5049

File tree

4 files changed

+297
-4
lines changed

4 files changed

+297
-4
lines changed

GROSSARY.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
| implication | 含意 |
2222
| instantiation | インスタンス化 |
2323
| kind ||
24+
| macro hygiene | マクロの健全性 |
2425
| metavariable | メタ変数 |
2526
| notation | 記法 |
2627
| parse | パース |
@@ -44,5 +45,5 @@
4445

4546
| 用語 |
4647
| --- |
47-
| macro hygiene |
4848
| loose |
49+
| syntax quotation |

lean/main/05_syntax.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ Lets go through the definition one constructor at a time:
532532
- `missing` は Lean のコンパイラによってパースできないようなものがある際に使われます。このおかげで Lean はファイルの一部で構文エラーがあっても、そこから回復してファイルの残りの部分を理解しようとします。これはまた、このコンストラクタはあまり気にされないものであるということでもあります。
533533
- `node` は名前の通り、構文木のノードです。ノードは `kind : SyntaxNodeKind` と呼ばれるものを持っています。この `SyntaxNodeKind` はただの `Lean.Name` です。基本的に、各 `syntax` 宣言は自動的に生成された `SyntaxNodeKind` を受け取り(この名前は `syntax (name := foo) ... : cat` で明示的に指定することもできます)、これによって Lean に「この関数は特定の構文構築を行う責任がある」ということを伝えます。さらに、木の中の全てのノードと同様に、この関数にも子があり、この場合は `Array Syntax` をいう形式をとっています。
534534
- `atom` は(1つを除いて)階層の一番下にあるすべての構文オブジェクトを表します。例えば、上の演算子 ` ⊕ ` と ` LXOR ` は atom として表現されます。
535-
- `ident` は `atom` で前述したこのルールの例外です。`ident` と `atom` の違いは実に明白です:識別子はそれを表すにあたって `String` の代わりに `Lean.Name` を持ちます。なぜ `Lean.Name` が単なる `String` ではないのかはマクロの章で詳しく説明する macro hygiene と呼ばれる概念に関連しています。今のところ、これらは基本的に等価であると考えることができます。
535+
- `ident` は `atom` で前述したこのルールの例外です。`ident` と `atom` の違いは実に明白です:識別子はそれを表すにあたって `String` の代わりに `Lean.Name` を持ちます。なぜ `Lean.Name` が単なる `String` ではないのかはマクロの章で詳しく説明するマクロの健全性(macro hygieneと呼ばれる概念に関連しています。今のところ、これらは基本的に等価であると考えることができます。
536536
537537
--#--
538538
### Constructing new `Syntax`

0 commit comments

Comments
 (0)