Merge pull request #178 from GreasySlug/fix/md_links

This commit is contained in:
Shunsuke Shibayama 2022-09-30 02:29:23 +09:00 committed by GitHub
commit 6d515dcabe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 953 additions and 281 deletions

View file

@ -83,7 +83,7 @@ match res2:
err: Error -> panic err.msg
```
## Anonymous polycorrelation coefficient
## Anonymous polymorphic functions
```python
# same as id|T| x: T = x

View file

@ -1,177 +1,324 @@
# index
See [here](../API/index.md) for APIs not in this index.
See [here](../dev_guide/terms.md) for terminology.
Also, see [here](../terms.md) for terminology.
## symbol
* !
* !-type → [mutable type](./type/mut.md)
* [#](./00_basic.md/#comment)
* $
* ! → [side effect](./07_side_effect.md)
* !-type → [mutable type](./type/18_mut.md)
* ? → [error handling](./30_error_handling.md)
* # → [Str](./00_basic.md/#comment)
* $ → [shared](./type/advanced/shared.md)
* %
* &
* &&
* ′ (single quote)
* ()
* [′ (single quote)](./20_naming_rule.md#literal-identifiers)
* [" (double quote)](./01_literal.md#str-literal)
* () → [Tuple](./11_tuple.md)
* *
* [*-less multiplication](./01_literal.md/#less-multiplication)
* + (prefix)
* * → [*-less multiplication](./01_literal.md/#less-multiplication)
* + (prefix) → [operator](./06_operator.md)
* +_ → + (prefix)
* + (infix)
* + (infix) → [operator](./06_operator.md)
* + (infix) → [Trait](./type/03_trait.md)
* ,
* − (prefix)
* −_ → − (prefix)
* − (infix)
* −>
* . → [Visibility]
* − (infix) → [operator](./06_operator.md)
* − (infix) → [Trait](./type/03_trait.md)
* −> → [anonymous function](./21_lambda.md)
* . → [Visibility](./19_visibility.md)
* .. → [closed range operator](./01_literal.md/#range-object)
* ..< → [right-open range operator](./01_literal.md/#range-object)
* ...
* ... → [Extract&nbsp;assignment](./28_spread_syntax.md#extract-assignment)
* ... → [Variable-length arguments](./04_function.md#variable-length-arguments)
* /
* :
* :: → [visibility]
* : → [Colon&nbsp;application&nbsp;style](./04_function.md)
* : → [Type ascription](./03_declaration.md.md)
* : → [Keyword&nbsp;arguments](./04_function.md)
* :: → [private variable modifier](./19_visibility.md)
* := → [default&nbsp;parameters](./04_function.md)
* ;
* &lt;
* &lt;:
* &lt;: → [Subtype&nbsp;specification](./type/02_basic.md)
* &lt;&lt;
* &lt;=
* =
* &lt;.. → [left-open range operator](./01_literal.md/#range-object)
* &lt;..&lt; → [open range operator](./01_literal.md/#range-object)
* = → [Variable](./19_visibility.md)
* ==
* =>
* => → [anonymous procedure operator](./08_procedure.md)
* &gt;
* &gt;&gt;
* &gt;=
* ?
* @
* []
* \
* @ → [decorator](./29_decorator.md)
* [] → [Array](./10_array.md)
* \ → [Escaping](./00_basic.md)
* ^
* ^^
* _
* _ → [Type&nbsp;erasure](./type/advanced/erasure.md)
* &#95;+&#95;&plus; (infix)
* &#95;-&#95;&minus; (infix)
*``
* [``&nbsp;(back&nbsp;quote)](./22_subroutine.md#operator)
* {}
* {} type
* {:}
* {=}
* {=} type
* [{} type](./type/01_type_system.md)
* {=} → [Type&nbsp;System](./type/01_type_system.md#classification)
* [{=}&nbsp;type](./13_record.md#empty-record)
* |
* ||
* || → [Type variable list](./type/advanced/)
* ~
## alphabet
### A
* algebraic&nbsp;type
* And
* and
* assert
* attribute
* [Add]
* [alias](type/02_basic.md#aliasing)
* [Aliasing](./type/02_basic.md#aliasing)
* [All&nbsp;symmetric&nbsp;types](./type/15_quantified.md#all-symmetric-types)
* [algebraic&nbsp;type](./type/13_algebraic.md)
* [And]
* [and]
* [anonymous&nbsp;function](./21_lambda.md)
* anonymous type → [Type&nbsp;system](./type/01_type_system.md)
* [Array](./10_array.md)
* [assert]
* [Attach](./29_decorator.md#attach)
* [attribute](type/09_attributive.md)
* [Attribute&nbsp;definitions](./type/02_basic.md#attribute-definitions)
* [Attribute&nbsp;type](./type/09_attributive.md)
### B
* Base
* Bool
* [Bool, Boolean](./01_literal.md#boolean-object)
* [Boolean&nbsp;object](./01_literal.md#boolean-object)
* [borrowing](./18_ownership.md#borrow)
### C
* Class
* [Cast](./type/17_type_casting.md)
* [Comments](./00_basic.md#comments)
* [Complex&nbsp;object](./01_literal.md#complex-object)
* [Compile-time&nbsp;functions](./04_function.md#compile-time-functions)
* [circular&nbsp;references](./18_ownership.md#circular-references)
* [Class](./type/04_class.md)
* [Class&nbsp;relationship](./type/04_class.md#class-relationships)
* [Class&nbsp;upcasting](./type/16_subtyping.md#class-upcasting)
* [Colon&nbsp;application&nbsp;style](./04_function.md#colon-application-style)
* [Closure](./23_closure.md)
* [Compound literals](./01_literal.md#compound-literals)
* [Complement](./type/13_algebraic.md#complement)
* [Comprehension](./27_comprehension.md)
* [constant](./17_mutability.md#constant)
* [Constants](./02_name.md#constants)
* [Context](./30_error_handling.md#context)
### D
* [Data&nbsp;type](./type/01_type_system.md#data-type)
* [Declaration](./03_declaration.md)
* [decorator](./29_decorator.md)
* [Default&nbsp;parameters](./04_function.md#default-parameters)
* [Del](./02_name.md#delete-an-variable)
* [Dependent&nbsp;type](./type/14_dependent.md)
* Deprecated
* [Dict](./12_dict.md)
* [Diff](./type/13_algebraic.md#diff)
* distinct
* [Downcasting](./type/17_type_casting.md#downcasting)
### E
* enum&nbsp;type
* Eq
* Erg
* [Empty&nbsp;record](./13_record.md#empty-record)
* [Enum&nbsp;class](./type/04_class.md#enum-class)
* [Enum&nbsp;type](./type/11_enum.md)
* [Enumerated,&nbsp;Interval&nbsp;and&nbsp;Refinement&nbsp;types](./type/12_refinement.md#enumerated-interval-and-refinement-types)
* [error&nbsp;handling](./30_error_handling.md)
* [Existential&nbsp;type](./type/advanced/existential.md)
* [Exponential&nbsp;literal](./01_literal.md#exponential-literal)
* [Extract&nbsp;assignment](./28_spread_syntax.md#extract-assignment)
### F
* for
* False → [Boolean object](./01_literal.md#boolean-object)
* [Float&nbsp;object](./01_literal.md#float-object)
* [for](./05_builtin_funcs.md#for)
* [For-All&nbsp;patch](./type/07_patch.md#for-all-patch)
* [freeze](./18_ownership.md#freeze)
* [Function](./04_function.md)
* [Function&nbsp;definition&nbsp;with&nbsp;multiple patterns](./04_function.md#function-definition-with-multiple-patterns)
### G
* [GADTs(Generalized&nbsp;Algebraic&nbsp;Data&nbsp;Types)](./type/advanced/GADTs.md)
* [Generator](./34_generator.md)
* [Glue&nbsp;Patch](./type/07_patch.md#glue-patch)
### H
### I
* if
* import
* in
* Int
* [id](./09_builtin_procs.md#id)
* [if](./05_builtin_funcs.md#if)
* [import](./33_package_system.md)
* [impl](./29_decorator.md#impl)
* [in]
* [Indention](./00_basic.md#indentation)
* [Instant&nbsp;block](./13_record.md#instant-block)
* [Instance/class&nbsp;attributes](./type/04_class.md#instance-and-class-attributes)
* [inheritable](./29_decorator.md#inheritable)
* [inheritance](./type/05_inheritance.md)
* [Int](./01_literal.md)
* [Integration&nbsp;with&nbsp;Python](./32_integration_with_Python.md)
* [Interval&nbsp;Type](./type/10_interval.md)
* [Intersection](./type/13_algebraic.md#intersection)
* [Iterator](./16_iterator.md)
### J
### K
* [Keyword&nbsp;arguments](./04_function.md#keyword-arguments)
* [Kind](./type/advanced/kind.md)
### L
* let-polymorphism → [rank 1 polymorphism]
* log
* lambda → [anonymous&nbsp;function](./21_lambda.md)
* let-polymorphism → [rank&nbsp;1&nbsp;polymorphism]
* [Literal&nbsp;Identifiers](./20_naming_rule.md#literal-identifiers)
### M
* match
* [match]
* [Marker&nbsp;trait](./type/advanced/marker_trait.md)
* [Method](./07_side_effect.md#methods)
* Modifier → [decorator](./29_decorator.md)
* [module](./24_module.md)
* [Multiple&nbsp;inheritance](type/05_inheritance.md#multiple-inheritance)
* [Multi-layer&nbsp;(multi-level)&nbsp;Inheritance](type/05_inheritance.md#multi-layer-multi-level-inheritance)
* [Mutable&nbsp;type](./type/18_mut.md)
* [Mutable&nbsp;structure&nbsp;type](./type/advanced/mut_struct.md)
* [Mutability](./17_mutability.md)
### N
* Nat
* Never
* None
* None
* Not
* not
* [Nat](./01_literal.md#int-literal)
* [Never]
* [New&nbsp;type](./type/advanced/newtype.md)
* [Heterogeneous&nbsp;Dict](./12_dict.md#heterogeneous-dict)
* None → [None&nbsp;Object]
* [None&nbsp;Object]
* Nominal&nbsp;Subtyping → [Class](./type/04_class.md)
* [Not]
* [not]
### O
* Option
* Or
* or
* Ord
* [Object](./25_object_system.md)
* [Option]
* [Or]
* [or]
* [Ord]
* [ownership&nbsp;system](./18_ownership.md)
* [Overloading](./type/advanced/overloading.md)
* [Overriding](./type/05_inheritance.md#overriding)
* [Override&nbsp;in&nbsp;trait](./type/03_trait.md#override-in-trait)
### P
* panic
* [print!](./../API/procs.md#print)
* Python
* [Panic](./30_error_handling.md#panic)
* [Patch](./type/07_patch.md)
* [Pattern&nbsp;match](./26_pattern_matching.md)
* [Phantom&nbsp;class](./type/advanced/phantom.md)
* [pipeline&nbsp;operator](./31_pipeline.md)
* [Predicate](./type/19_bound.md#predicate)
* [print!]
* [Procedures](./08_procedure.md)
* [Projection&nbsp;type](./type/advanced/projection.md)
* Python → [Integration&nbsp;with&nbsp;Python](./32_integration_with_Python.md)
### Q
* [Quantified&nbsp;type](./type/15_quantified.md)
* [Quantified&nbsp;dependent&nbsp;type](./type/advanced/quantified_dependent.md)
### R
* ref
* ref!
* Result
* rootobj
* [Range&nbsp;Object](./01_literal.md#range-object)
* [ref]
* [ref!]
* [Record](./13_record.md)
* [Recursive&nbsp;functions](./04_function.md#recursive-functions)
* [Refinement&nbsp;pattern](./type/12_refinement.md#refinement-pattern)
* [Refinement&nbsp;type](./type/12_refinement.md)
* [replication](./18_ownership.md#replication)
* [Replacing&nbsp;traits](./type/05_inheritance.md#replacing-traits-or-what-looks-like-it)
* Result → [error&nbsp;handling](./30_error_handling.md)
### S
* [Script](./00_basic.md#scripts)
* self
* [Self](./type/special.md)
* [Self](./type/advanced/special.md)
* [Shared&nbsp;reference](./type/advanced/shared.md)
* [side-effect](./07_side_effect.md)
* Str
* [Smart&nbsp;cast](./type/12_refinement.md#smart-cast)
* [Spread&nbsp;assignment](./28_spread_syntax.md)
* [special&nbsp;type&nbsp;variables](./type/advanced/special.md#special-type-variables)
* [Stack&nbsp;trace](30_error_handling.md#stack-trace)
* [Structure&nbsp;type](./type/01_type_system.md#structure-type-anonymous-type)
* [Structural&nbsp;patch](./type/07_patch.md#structural-patch)
* [Structural&nbsp;trait](./type/03_trait.md#structural-traits)
* [Structural&nbsp;subtyping](./type/01_type_system.md#classification)
* [Structural&nbsp;types&nbsp;and&nbsp;class&nbsp;type&nbsp;relationships](./type/16_subtyping.md#structural-types-and-class-type-relationships)
* [Str](./01_literal.md#str-literal)
* [Subtyping](./type/16_subtyping.md)
* [Subtyping&nbsp;of&nbsp;subroutines](./type/16_subtyping.md#subtyping-of-subroutines)
* [Subtype&nbsp;specification](./type/02_basic.md#subtype-specification)
* [Subtyping&nbsp;of&nbsp;polymorphic&nbsp;function types](./type/15_quantified.md#subtyping-of-polymorphic-function-types)
* [Subroutine&nbsp;signatures](./22_subroutine.md)
### T
* Traits
* True
* Type
* type
* [Test](./29_decorator.md#test)
* [Traits](./type/03_trait.md)
* [Trait&nbsp;inclusion](./type/03_trait.md#trait-inclusion)
* True → [Boolean&nbsp;object](./01_literal.md#boolean-object)
* [True&nbsp;algebraic&nbsp;type](./type/13_algebraic.md#true-algebraic-type)
* [Type]
* [type](./15_type.md)
* [Type&nbsp;arguments&nbsp;in&nbsp;method&nbsp;definitions](./type/15_quantified.md#type-arguments-in-method-definitions)
* [Type&nbsp;bound](./type/19_bound.md)
* [Type&nbsp;definitions](./type/01_type_system.md#type-definitions)
* [Type&nbsp;erasure](./type/advanced/erasure.md)
* [Type&nbsp;inference&nbsp;system](./type/01_type_system.md#type-inference-system)
* [Type&nbsp;specification](./type/02_basic.md#type-specification)
* [Type&nbsp;system](./type/01_type_system.md)
* [Type&nbsp;widening](./type/advanced/widening.md)
* [Tuple](./11_tuple.md)
### U
* [union](type/13_algebraic.md#union)
* [Unit](./11_tuple.md#unit)
* [Upcasting](type/17_type_casting.md#upcasting)
### V
* [Value&nbsp;type](./type/08_value.md)
* [Variable](./02_name.md)
* [variable-length&nbsp;arguments](./04_function.md#variable-length-arguments)
### W
* while!
* [while]
### X
### Y
### Z

View file

@ -39,5 +39,5 @@ If you cannot decide which one to use, our recommendation is NST.
SST requires abstraction skills to write code that does not break down in any use case. Good abstraction can lead to high productivity, but wrong abstraction (commonality by appearances) can lead to counterproductive results. (NSTs can reduce this risk by deliberately keeping abstraction to a minimum. If you are not a library implementor, it is not a bad idea to code only with NSTs.
<p align='center'>
<a href='./04_class.md'>Previous</a> | <a href='./06_inheritance.md'>Next</a>
<a href='./05_inheritance.md'>Previous</a> | <a href='./07_patch.md'>Next</a>
</p>

View file

@ -35,3 +35,7 @@ Types classified as value types may be added in the future.
---
<span id="1" style="font-size:x-small"><sup>1</sup> The term "value type" in Erg differs from the definition in other languages. There is no concept of memory within pure Erg semantics, and it is incorrect to state that it is a value type because it is placed on the stack, or that it is not a value type because it is actually a pointer. A value type only means that it is a `Value` type or its subtypes. [](#f1)</span>
<p align='center'>
<a href='./07_patch.md'>Previous</a> | <a href='./09_attributive.md'>Next</a>
</p>

View file

@ -6,4 +6,8 @@ Types belonging to attribute types are not value types.
## Record Type Composite
It is possible to flatten Record types composited.
For example, `{... {.name = Str; .age = Nat}; ... {.name = Str; .id = Nat}}` becomes `{.name = Str; .age = Nat; .id = Nat}`.
For example, `{... {.name = Str; .age = Nat}; ... {.name = Str; .id = Nat}}` becomes `{.name = Str; .age = Nat; .id = Nat}`.
<p align='center'>
<a href='./08_value.md'>Previous</a> | <a href='./10_interval.md'>Next</a>
</p>

View file

@ -34,3 +34,7 @@ A Range operator can be used for non-numeric types, as long as they are `Ord` im
```python
Alphabet = "A".."z"
```
<p align='center'>
<a href='./09_attributive.md'>Previous</a> | <a href='./11_enum.md'>Next</a>
</p>

View file

@ -83,3 +83,7 @@ OpaqueAbc = Class {inner = {"A", "B", "C"}}.
new inner: {"A", "B", "C"} = Self.new {inner;}
OpaqueAbc.new("A").is_uppercase() # TypeError
```
<p align='center'>
<a href='./10_interval.md'>Previous</a> | <a href='./12_refinement.md'>Next</a>
</p>

View file

@ -3,7 +3,7 @@
Refinement type is a type constrained by a predicate expression. Enumeration types and interval types are syntax sugar of refinement types.
The standard form of a refinement type is `{Elem: Type | (Pred)*}`. This means that the type is a type whose elements are `Elem` satisfying `Pred`.
The type that can be used for the sifting type is [Const type] only.
The type that can be used for the refinement type is [Value type](./08_value.md) only.
```python
Nat = 0.. _
@ -53,7 +53,7 @@ match i:
However, Erg cannot currently make sub-decisions such as `Even` because it was not `Odd`, etc.
## Enumerated, Interval and Sift Types
## Enumerated, Interval and Refinement Types
The enumerative/interval types introduced before are syntax sugar of the refinement type.
`{a, b, ...}` is `{I: Typeof(a) | I == a or I == b or ... }`, and `a..b` is desugarized to `{I: Typeof(a) | I >= a and I <= b}`.
@ -73,3 +73,7 @@ Just as `_: {X}` can be rewritten as `X` (constant pattern), `_: {X: T | Pred}`
Array(T, N | N >= 3)
.m(&self) = ...
```
<p align='center'>
<a href='./11_enum.md'>Previous</a> | <a href='./13_algebraic.md'>Next</a>
</p>

View file

@ -82,3 +82,7 @@ assert Int and Marker == And(Int, Marker)
```
Diff, Complement types are not true algebraic types because they can always be simplified.
<p align='center'>
<a href='./12_refinement.md'>Previous</a> | <a href='./14_dependent.md'>Next</a>
</p>

View file

@ -71,4 +71,8 @@ MyArray(T, N) = Inherit[T; N]
# The type of self: Self(T, N) changes in conjunction with .array
MyStruct!(T, N: Nat!) = Class {.array: [T; !N]}
```
```
<p align='center'>
<a href='./13_algebraic.md'>Previous</a> | <a href='./15_quantified.md'>Next</a>
</p>

View file

@ -278,3 +278,7 @@ DepFn.
assert (Int -> Int).type() == Int # by DepFn
assert DepFn(Int).type() == Int # by DepFn
```
<p align='center'>
<a href='./14_dependent.md'>Previous</a> | <a href='./16_subtyping.md'>Next</a>
</p>

View file

@ -74,3 +74,7 @@ i as (Int or Str)
i as (1..10)
i as {I: Int | I >= 0}
```
<p align='center'>
<a href='./15_quantified.md'>Previous</a> | <a href='./17_type_casting.md'>Next</a>
</p>

View file

@ -70,3 +70,7 @@ IntTryFromFloat.
then: r.ceil()
else: Error "conversion failed".
```
<p align='center'>
<a href='./16_subtyping.md'>Previous</a> | <a href='./18_mut.md'>Next</a>
</p>

View file

@ -160,4 +160,8 @@ And for the type `T!` which has no internal structure, this instance is simply a
---
<span id="1" style="font-size:x-small"><sup>1</sup> It is intentional that `T!` and `T` types have no special linguistic relationship. It's a design. If there is a relationship, for example, if the `T`/`T!` type exists in the namespace, it will not be possible to introduce the `T!`/`T` type from another module. Also, the mutable type is not uniquely defined for the immutable type. Given the definition `T = (U, V)`, the possible variable subtypes of `T!` are `(U!, V)` and `(U, V!)`. [](#f1)</span>
<span id="1" style="font-size:x-small"><sup>1</sup> It is intentional that `T!` and `T` types have no special linguistic relationship. It's a design. If there is a relationship, for example, if the `T`/`T!` type exists in the namespace, it will not be possible to introduce the `T!`/`T` type from another module. Also, the mutable type is not uniquely defined for the immutable type. Given the definition `T = (U, V)`, the possible variable subtypes of `T!` are `(U!, V)` and `(U, V!)`. [](#f1)</span>
<p align='center'>
<a href='./17_type_casting.md'>Previous</a> | <a href='./19_bound.md'>Next</a>
</p>

View file

@ -15,4 +15,8 @@ g a: [T; N | N > 5] | T, N = ...
Odd = {I: Int | I % 2 == 1}
R2Plus = {(L, R) | L, R: Ratio; L > 0 and R > 0}
GeneralizedOdd = {I | U; I <: Div(Nat, U); I % 2 == 0}
```
```
<p align='center'>
<a href='./18_mut.md'>Previous</a> | Next
</p>

View file

@ -3,173 +3,332 @@
[![badge](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fgezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com%2Fdefault%2Fsource_up_to_date%3Fowner%3Derg-lang%26repos%3Derg%26ref%3Dmain%26path%3Ddoc/EN/syntax/indexes.md%26commit_hash%3D68054846e20b4cdb0e92e986b1b86fcc77de8bcd)](https://gezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com/default/source_up_to_date?owner=erg-lang&repos=erg&ref=main&path=doc/EN/syntax/indexes.md&commit_hash=68054846e20b4cdb0e92e986b1b86fcc77de8bcd)
この索引にないAPIについては[こちら](../API/index.md)を参照してください。
用語の意味については[こちら](../dev_guide/terms.md)を参照。
用語の意味については[こちら](../terms.md)を参照。
## 記号
* !
* !-type → [可変型](./type/mut.md)
* [&#35;](./00_basic.md/#コメント)
* $
* ! → [side&nbsp;effect](./07_side_effect.md)
* !-type → [mutable&nbsp;type](./type/18_mut.md)
* ? → [error&nbsp;handling](./30_error_handling.md)
* &#35; → [Str](./00_basic.md/#comment)
* $ → [shared](./type/advanced/shared.md)
* %
* &
* &&
* &prime; (single quote)
* &lpar;&rpar;
* [&prime;&nbsp;(single&nbsp;quote)](./20_naming_rule.md)
* [&quot;&nbsp;(double&nbsp;quote)](./01_literal.md)
* &lpar;&rpar; → [Tuple](./11_tuple.md)
* &ast;
* [*-less multiplication](./01_literal.md/#less-multiplication)
* &plus; (前置)
* &ast; → [*-less&nbsp;multiplication](./01_literal.md/#less-multiplication)
* &plus; (前置) → [operator](./06_operator.md)
* &plus;_ → &plus; (前置)
* &plus; (中置)
* &plus; (中置) → [operator](./06_operator.md)
* &plus; (中置) → [Trait](./type/03_trait.md)
* ,
* &minus; (前置)
* &minus;_ → &minus; (前置)
* &minus; (中置)
* &minus;>
* . → [可視性]
* &minus; (中置) → [operator](./06_operator.md)
* &minus; (中置) → [Trait](./type/03_trait.md)
* &minus;> → [anonymous&nbsp;function](./21_lambda.md)
* . → [Visibility](./19_visibility.md)
* [...&nbsp;assignment](./28_spread_syntax.md)
* [...&nbsp;Extract&nbsp;assignment](./28_spread_syntax.md)
* [...&nbsp;function](./04_function.md)
* /
* :
* :: → [可視性]
* : → [Colon&nbsp;application&nbsp;style](./04_function.md)
* : → [Declaration](./03_declaration.md.md)
* : → [Keyword&nbsp;Arguments](./04_function.md)
* :: → [visibility](./19_visibility.md)
* := → [default&nbsp;parameters](./04_function.md)
* ;
* &lt;
* &lt;:
* &lt;: → [Subtype&nbsp;specification](./type/02_basic.md)
* &lt;&lt;
* &lt;=
* =
* = → [Variable](./19_visibility.md)
* ==
* =>
* => → [procedure](./08_procedure.md)
* &gt;
* &gt;&gt;
* &gt;=
* ?
* @
* []
* \
* @ → [decorator](./29_decorator.md)
* [] → [Array](./10_array.md)
* \ → [Indention](./00_basic.md)
* \ → [Str](./01_literal.md)
* ^
* ^^
* _
* &#95;+&#95;&plus; (中置)
* &#95;-&#95;&minus; (中置)
* ``
* _ → [Type&nbsp;erasure](./type/advanced/erasure.md)
* &#95;+&#95;&plus; (infix)
* &#95;-&#95;&minus; (infix)
* [``&nbsp;(back&nbsp;quote)](./22_subroutine.md)
* {}
* {} type
* [{} type](./type/01_type_system.md)
* {:}
* {=}
* {=} type
* {=} → [Type&nbsp;System](./type/01_type_system.md)
* [{=}&nbsp;type](./13_record.md)
* |
* ||
* || → [Type variable list](./type/advanced/)
* ~
## アルファベット
### A
* [algebraic&nbsp;type]
* [Add]
* [alias](type/02_basic.md)
* [Aliasing](./type/02_basic.md)
* [All&nbsp;symmetric&nbsp;types](./type/15_quantified.md)
* [algebraic&nbsp;type](./type/13_algebraic.md)
* [And]
* [and]
* [anonymous&nbsp;function](./21_lambda.md)
* [Anonymous&nbsp;polycorrelation&nbsp;coefficient](./21_lambda.md)
* anonymous type → [Type&nbsp;System](./type/01_type_system.md)
* [Array](./10_array.md)
* [assert]
* [attribute]
* [Attach](./29_decorator.md)
* [attribute](type/09_attributive.md)
* [Attribute&nbsp;definitions](./type/02_basic.md)
* [Attribute&nbsp;Type](./type/09_attributive.md)
### B
* [Base]
* [Bool]
* [Bool, Boolean](./01_literal.md)
* [Boolean&nbsp;Object](./01_literal.md)
* [borrow](./18_ownership.md)
### C
* [Class]
* [Cast](./type/17_type_casting.md)
* [Comments](./00_basic.md)
* [Complex&nbsp;Object](./01_literal.md)
* [Compile-time&nbsp;functions](./04_function.md)
* [circular&nbsp;references](./18_ownership.md)
* [Class](./type/04_class.md)
* [Class&nbsp;Relationship](./type/04_class.md)
* [Class&nbsp;upcasting](./type/16_subtyping.md)
* [Colon&nbsp;application&nbsp;style](./04_function.md)
* [Closure](./23_closure.md)
* [Compound Literals](./01_literal.md)
* [Complement](./type/13_algebraic.md)
* [Comprehension](./27_comprehension.md)
* [constant](./17_mutability.md)
* [Constants](./02_name.md)
* [Context](./30_error_handling.md)
### D
* [Data&nbsp;type](./type/01_type_system.md)
* [Declaration](./03_declaration.md)
* [decorator](./29_decorator.md)
* [Default&nbsp;parameters](./04_function.md)
* [Del](./02_name.md)
* [Dependent&nbsp;Type](./type/14_dependent.md)
* [Deconstructing&nbsp;a&nbsp;record](13_record.md)
* Deprecated
* [distinct]
* [Dict](./12_dict.md)
* [Diff](./type/13_algebraic.md)
* [Difference&nbsp;from&nbsp;Data&nbsp;Class](./type/04_class.md)
* [Difference&nbsp;from&nbsp;structural&nbsp;types](type/04_class.md)
* distinct
* [Downcasting](./type/17_type_casting.md)
### E
* [enum&nbsp;type]
* [Eq]
* [Erg]
* [Empty&nbsp;Record](./13_record.md)
* [Enum&nbsp;Class](./type/04_class.md)
* [Enum&nbsp;type](./type/11_enum.md)
* [Enumerated,&nbsp;Interval&nbsp;and&nbsp;Refinement&nbsp;Types](./type/12_refinement.md)
* [error&nbsp;handling](./30_error_handling.md)
* [Existential&nbsp;type](./type/advanced/existential.md)
* [Exponential&nbsp;Literal](./01_literal.md)
* [Extract&nbsp;assignment](./28_spread_syntax.md)
### F
* [for]
* False → [Boolean Object](./01_literal.md)
* [Float&sbsp;Object](./01_literal.md)
* [for](./05_builtin_funcs.md)
* [For-All&nbsp;Patch](./type/07_patch.md)
* [freeze](./18_ownership.md)
* [Function](./04_function.md)
* [Function&nbsp;definition&nbsp;with&nbsp;multiple patterns](./04_function.md)
### G
* [GADTs(Generalized&nbsp;Algebraic&nbsp;Data&nbsp;Types)](./type/advanced/GADTs.md)
* [Generator](./34_generator.md)
* [Glue&nbsp;Patch](./type/07_patch.md)
### H
### I
* [if]
* [import]
* [id](./09_builtin_procs.md)
* [if](./05_builtin_funcs.md)
* [import](./33_package_system.md)
* [impl](./29_decorator.md)
* [in]
* [Int]
* [Indention](./00_basic.md)
* [Instant&nbsp;Block](./13_record.md)
* [Instance&nbsp;and&nbsp;class&nbsp;attributes](./type/04_class.md)
* [Implementing&nbsp;and&nbsp;resolving&nbsp;duplicate&nbsp;traits&nbsp;in&nbsp;the&nbsp;API](type/03_trait.md)
* [inheritable](./29_decorator.md)
* [inheritance](./type/05_inheritance.md)
* [Inheritance&nbsp;of&nbsp;Enumerated&nbsp;Classes](./type/05_inheritance.md)
* [Int](./01_literal.md)
* [Integration&nbsp;with&nbsp;Python](./32_integration_with_Python.md)
* [Interval&nbsp;Type](./type/10_interval.md)
* [Intersection](./type/13_algebraic.md)
* [Iterator](./16_iterator.md)
### J
### K
* [Keyword&nbsp;arguments](./04_function.md)
* [Kind](./type/advanced/kind.md)
### L
* let-polymorphism → [ランク1多相]
* [log]
* lambda → [anonymous&nbsp;function](./21_lambda.md)
* let-polymorphism → [rank&nbsp;1&nbsp;polymorphism]
* [Literal&nbsp;Identifiers](./20_naming_rule.md)
* log → [side&nbsp;effect](./07_side_effect.md)
### M
* [match]
* [Marker&nbsp;Trait](./type/advanced/marker_trait.md)
* [Method](./07_side_effect.md)
* Modifier → [decorator](./29_decorator.md)
* [module](./24_module.md)
* [Multiple&nbsp;Inheritance](type/05_inheritance.md)
* [Multi-layer&nbsp;(multi-level)&nbsp;Inheritance](type/05_inheritance.md)
* [Mutable&nbsp;Type](./type/18_mut.md)
* [Mutable&nbsp;Structure&nbsp;Type](./type/advanced/mut_struct.md)
* [Mutability](./17_mutability.md)
### N
* [Nat]
* Never
* None
* None
* [Nat](./01_literal.md)
* [Never]
* [New&nbsp;type](./type/advanced/newtype.md)
* [Heterogeneous&nbsp;Dict](./12_dict.md)
* None → [None&nbsp;Object]
* [None&nbsp;Object]
* Nominal&nbsp;Subtyping → [Class](./type/04_class.md)
* [Not]
* [not]
### O
* [Object](./25_object_system.md)
* [Option]
* [Or]
* [or]
* [Ord]
* [ownership&nbsp;system](./18_ownership.md)
* [Overloading](./type/advanced/overloading.md)
* [Overriding](./type/05_inheritance.md)
* [Override&nbsp;in&nbsp;Trait](./type/03_trait.md)
### P
* panic
* [print!](./../API/procs.md#print)
* [Python]
* [Panic](./30_error_handling.md)
* [Patch](./type/07_patch.md)
* [Pattern&nbsp;match](./26_pattern_matching.md)
* [Phantom&nbsp;class](./type/advanced/phantom.md)
* [pipeline&nbsp;operator](./31_pipeline.md)
* [Predicate](./type/19_bound.md)
* [print!]
* [Procedures](./08_procedure.md)
* [Projection&nbsp;Type](./type/advanced/projection.md)
* Python → [Integration&nbsp;with&nbsp;Python](./32_integration_with_Python.md)
### Q
* [Quantified&nbsp;Type](./type/15_quantified.md)
* [Quantified&nbsp;Dependent&nbsp;Type](./type/advanced/quantified_dependent.md)
* [Quantified&nbsp;Types&nbsp;and&nbsp;Dependent&nbsp;Types](./type/15_quantified.md)
### R
* ref
* ref!
* [Result]
* [rootobj]
* [Range&nbsp;Object](./01_literal.md)
* [ref]
* [ref!]
* [Record](./13_record.md)
* [Record&nbsp;Type&nbsp;Composite](./type/09_attributive.mda12_refinement.md)
* [Recursive&nbsp;functions](./04_function.md)
* [Refinement&nbsp;pattern](./type/12_refinement.md)
* [Refinement&nbsp;Type](./type/12_refinement.md)
* [replication](./18_ownership.md)
* [Replacing&nbsp;Traits](./type/05_inheritance.md)
* Result → [error&nbsp;handling](./30_error_handling.md)
* [Rewriting&nbsp;Inherited&nbsp;Attributes](./type/05_inheritance.md)
* rootobj
### S
* [Script](./00_basic.md)
* [Selecting&nbsp;Patches](./type/07_patch.md)
* self
* [Self](./type/special.md)
* [Self](./type/advanced/special.md)
* [Shared&nbsp;Reference](./type/advanced/shared.md)
* [side-effect](./07_side_effect.md)
* [Str]
* [Smart&nbsp;Cast](./type/12_refinement.md)
* [Spread&nbsp;assignment](./28_spread_syntax.md)
* [special&nbsp;type&nbsp;variables](./type/advanced/special.md)
* [Stack&nbsp;trace](30_error_handling.md)
* [Structure&nbsp;type](./type/01_type_system.md)
* [Structural&nbsp;Patch](./type/07_patch.md)
* [Structural&nbsp;Trait](./type/03_trait.md)
* [Structural&nbsp;Subtyping](./type/01_type_system.md)
* [Structural&nbsp;types&nbsp;and&nbsp;class&nbsp;type&nbsp;relationships](./type/16_subtyping.md)
* [Str](./01_literal.md)
* [Subtyping](./type/16_subtyping.md)
* [Subtyping&nbsp;of&nbsp;subroutines](./type/16_subtyping.md)
* [Subtype&nbsp;specification](./type/02_basic.md)
* [Subtyping&nbsp;of&nbsp;Polymorphic&nbsp;Function Types](./type/15_quantified.md)
* [Subroutine&nbsp;Signatures](./22_subroutine.md)
### T
* Trait
* [True]
* [Test](./29_decorator.md)
* [Traits](./type/03_trait.md)
* [Trait&nbsp;inclusion](./type/03_trait.md)
* True → [Boolean&nbsp;Object](./01_literal.md)
* [True&nbsp;Algebraic&nbsp;type](./type/13_algebraic.md)
* [Type]
* [type]
* [type](./15_type.md)
* [Type&nbsp;arguments&nbsp;in&nbsp;method&nbsp;definitions](./type/15_quantified.md)
* [Type&nbsp;Bound](./type/19_bound.md)
* [Type&nbsp;Definitions](./type/01_type_system.md)
* [Type&nbsp;erasure](./type/advanced/erasure.md)
* [Type&nbsp;Inference&nbsp;System](./type/01_type_system.md)
* [Type&nbsp;specification](./type/02_basic.md)
* [Type&nbsp;System](./type/01_type_system.md)
* [Type&nbsp;Widening](./type/advanced/widening.md)
* [Tuple](./11_tuple.md)
### U
* [union](type/13_algebraic.md)
* [Unit](./11_tuple.md)
* [Upcasting](type/17_type_casting.md)
* [Usage&nbsp;of&nbsp;Inheritance](./type/05_inheritance.md)
### V
* [Value&nbsp;Type](./type/08_value.md)
* [Variable](./02_name.md)
* [variable-length&nbsp;arguments](./04_function.md)
### W
* [while!]
* [while]
### X

View file

@ -3,173 +3,332 @@
[![badge](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fgezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com%2Fdefault%2Fsource_up_to_date%3Fowner%3Derg-lang%26repos%3Derg%26ref%3Dmain%26path%3Ddoc/EN/syntax/indexes.md%26commit_hash%3D438bcb89ea692f219b30f3a3ba107888b23eae98)](https://gezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com/default/source_up_to_date?owner=erg-lang&repos=erg&ref=main&path=doc/EN/syntax/indexes.md&commit_hash=438bcb89ea692f219b30f3a3ba107888b23eae98)
有关不在此索引中的 API请参阅 [此处](../API/index.md)。
有关术语,请参见 [此处](../dev_guide/terms.md)。
有关术语,请参见 [此处](../terms.md)。
## 符号
* !
* !-type → [可变性](./type/mut.md)
* [&#35;](./00_basic.md/#comment)
* $
* ! → [side&nbsp;effect](./07_side_effect.md)
* !-type → [mutable&nbsp;type](./type/18_mut.md)
* ? → [error&nbsp;handling](./30_error_handling.md)
* &#35; → [Str](./00_basic.md/#comment)
* $ → [shared](./type/advanced/shared.md)
* %
* &
* &&
* &prime; (single quote)
* &lpar;&rpar;
* [&prime;&nbsp;(single&nbsp;quote)](./20_naming_rule.md)
* [&quot;&nbsp;(double&nbsp;quote)](./01_literal.md)
* &lpar;&rpar; → [Tuple](./11_tuple.md)
* &ast;
* [*-less multiplication](./01_literal.md/#less-multiplication)
* &plus; (前置)
* &ast; → [*-less&nbsp;multiplication](./01_literal.md/#less-multiplication)
* &plus; (前置) → [operator](./06_operator.md)
* &plus;_ → &plus; (前置)
* &plus; (中置)
* &plus; (中置) → [operator](./06_operator.md)
* &plus; (中置) → [Trait](./type/03_trait.md)
* ,
* &minus; (前置)
* &minus;_ → &minus; (前置)
* &minus; (中置)
* &minus;>
* . → [可见性]
* &minus; (中置) → [operator](./06_operator.md)
* &minus; (中置) → [Trait](./type/03_trait.md)
* &minus;> → [anonymous&nbsp;function](./21_lambda.md)
* . → [Visibility](./19_visibility.md)
* [...&nbsp;assignment](./28_spread_syntax.md)
* [...&nbsp;Extract&nbsp;assignment](./28_spread_syntax.md)
* [...&nbsp;function](./04_function.md)
* /
* :
* :: → [可见性]
* : → [Colon&nbsp;application&nbsp;style](./04_function.md)
* : → [Declaration](./03_declaration.md.md)
* : → [Keyword&nbsp;Arguments](./04_function.md)
* :: → [visibility](./19_visibility.md)
* := → [default&nbsp;parameters](./04_function.md)
* ;
* &lt;
* &lt;:
* &lt;: → [Subtype&nbsp;specification](./type/02_basic.md)
* &lt;&lt;
* &lt;=
* =
* = → [Variable](./19_visibility.md)
* ==
* =>
* => → [procedure](./08_procedure.md)
* &gt;
* &gt;&gt;
* &gt;=
* ?
* @
* []
* \
* @ → [decorator](./29_decorator.md)
* [] → [Array](./10_array.md)
* \ → [Indention](./00_basic.md)
* \ → [Str](./01_literal.md)
* ^
* ^^
* _
* _ → [Type&nbsp;erasure](./type/advanced/erasure.md)
* &#95;+&#95;&plus; (infix)
* &#95;-&#95;&minus; (infix)
*``
* [``&nbsp;(back&nbsp;quote)](./22_subroutine.md)
* {}
* {} type
* [{} type](./type/01_type_system.md)
* {:}
* {=}
* {=} type
* {=} → [Type&nbsp;System](./type/01_type_system.md)
* [{=}&nbsp;type](./13_record.md)
* |
* ||
* || → [Type variable list](./type/advanced/)
* ~
## 字母
## アルファベット
### A
* algebraic&nbsp;type
* And
* and
* assert
* attribute
* [Add]
* [alias](type/02_basic.md)
* [Aliasing](./type/02_basic.md)
* [All&nbsp;symmetric&nbsp;types](./type/15_quantified.md)
* [algebraic&nbsp;type](./type/13_algebraic.md)
* [And]
* [and]
* [anonymous&nbsp;function](./21_lambda.md)
* [Anonymous&nbsp;polycorrelation&nbsp;coefficient](./21_lambda.md)
* anonymous type → [Type&nbsp;System](./type/01_type_system.md)
* [Array](./10_array.md)
* [assert]
* [Attach](./29_decorator.md)
* [attribute](type/09_attributive.md)
* [Attribute&nbsp;definitions](./type/02_basic.md)
* [Attribute&nbsp;Type](./type/09_attributive.md)
### B
* Base
* Bool
* [Bool, Boolean](./01_literal.md)
* [Boolean&nbsp;Object](./01_literal.md)
* [borrow](./18_ownership.md)
### C
* Class
* [Cast](./type/17_type_casting.md)
* [Comments](./00_basic.md)
* [Complex&nbsp;Object](./01_literal.md)
* [Compile-time&nbsp;functions](./04_function.md)
* [circular&nbsp;references](./18_ownership.md)
* [Class](./type/04_class.md)
* [Class&nbsp;Relationship](./type/04_class.md)
* [Class&nbsp;upcasting](./type/16_subtyping.md)
* [Colon&nbsp;application&nbsp;style](./04_function.md)
* [Closure](./23_closure.md)
* [Compound Literals](./01_literal.md)
* [Complement](./type/13_algebraic.md)
* [Comprehension](./27_comprehension.md)
* [constant](./17_mutability.md)
* [Constants](./02_name.md)
* [Context](./30_error_handling.md)
### D
* [Data&nbsp;type](./type/01_type_system.md)
* [Declaration](./03_declaration.md)
* [decorator](./29_decorator.md)
* [Default&nbsp;parameters](./04_function.md)
* [Del](./02_name.md)
* [Dependent&nbsp;Type](./type/14_dependent.md)
* [Deconstructing&nbsp;a&nbsp;record](13_record.md)
* Deprecated
* [Dict](./12_dict.md)
* [Diff](./type/13_algebraic.md)
* [Difference&nbsp;from&nbsp;Data&nbsp;Class](./type/04_class.md)
* [Difference&nbsp;from&nbsp;structural&nbsp;types](type/04_class.md)
* distinct
* [Downcasting](./type/17_type_casting.md)
### E
* enum&nbsp;type
* Eq
* Erg
* [Empty&nbsp;Record](./13_record.md)
* [Enum&nbsp;Class](./type/04_class.md)
* [Enum&nbsp;type](./type/11_enum.md)
* [Enumerated,&nbsp;Interval&nbsp;and&nbsp;Refinement&nbsp;Types](./type/12_refinement.md)
* [error&nbsp;handling](./30_error_handling.md)
* [Existential&nbsp;type](./type/advanced/existential.md)
* [Exponential&nbsp;Literal](./01_literal.md)
* [Extract&nbsp;assignment](./28_spread_syntax.md)
### F
* for
* False → [Boolean Object](./01_literal.md)
* [Float&sbsp;Object](./01_literal.md)
* [for](./05_builtin_funcs.md)
* [For-All&nbsp;Patch](./type/07_patch.md)
* [freeze](./18_ownership.md)
* [Function](./04_function.md)
* [Function&nbsp;definition&nbsp;with&nbsp;multiple patterns](./04_function.md)
### G
* [GADTs(Generalized&nbsp;Algebraic&nbsp;Data&nbsp;Types)](./type/advanced/GADTs.md)
* [Generator](./34_generator.md)
* [Glue&nbsp;Patch](./type/07_patch.md)
### H
### I
* if
* import
* in
* Int
* [id](./09_builtin_procs.md)
* [if](./05_builtin_funcs.md)
* [import](./33_package_system.md)
* [impl](./29_decorator.md)
* [in]
* [Indention](./00_basic.md)
* [Instant&nbsp;Block](./13_record.md)
* [Instance&nbsp;and&nbsp;class&nbsp;attributes](./type/04_class.md)
* [Implementing&nbsp;and&nbsp;resolving&nbsp;duplicate&nbsp;traits&nbsp;in&nbsp;the&nbsp;API](type/03_trait.md)
* [inheritable](./29_decorator.md)
* [inheritance](./type/05_inheritance.md)
* [Inheritance&nbsp;of&nbsp;Enumerated&nbsp;Classes](./type/05_inheritance.md)
* [Int](./01_literal.md)
* [Integration&nbsp;with&nbsp;Python](./32_integration_with_Python.md)
* [Interval&nbsp;Type](./type/10_interval.md)
* [Intersection](./type/13_algebraic.md)
* [Iterator](./16_iterator.md)
### J
### K
* [Keyword&nbsp;arguments](./04_function.md)
* [Kind](./type/advanced/kind.md)
### L
* let-polymorphism → [rank 1 polymorphism]
* log
* lambda → [anonymous&nbsp;function](./21_lambda.md)
* let-polymorphism → [rank&nbsp;1&nbsp;polymorphism]
* [Literal&nbsp;Identifiers](./20_naming_rule.md)
* log → [side&nbsp;effect](./07_side_effect.md)
### M
* match
* [match]
* [Marker&nbsp;Trait](./type/advanced/marker_trait.md)
* [Method](./07_side_effect.md)
* Modifier → [decorator](./29_decorator.md)
* [module](./24_module.md)
* [Multiple&nbsp;Inheritance](type/05_inheritance.md)
* [Multi-layer&nbsp;(multi-level)&nbsp;Inheritance](type/05_inheritance.md)
* [Mutable&nbsp;Type](./type/18_mut.md)
* [Mutable&nbsp;Structure&nbsp;Type](./type/advanced/mut_struct.md)
* [Mutability](./17_mutability.md)
### N
* Nat
* Never
* None
* None
* Not
* not
* [Nat](./01_literal.md)
* [Never]
* [New&nbsp;type](./type/advanced/newtype.md)
* [Heterogeneous&nbsp;Dict](./12_dict.md)
* None → [None&nbsp;Object]
* [None&nbsp;Object]
* Nominal&nbsp;Subtyping → [Class](./type/04_class.md)
* [Not]
* [not]
### O
* Option
* Or
* or
* Ord
* [Object](./25_object_system.md)
* [Option]
* [Or]
* [or]
* [Ord]
* [ownership&nbsp;system](./18_ownership.md)
* [Overloading](./type/advanced/overloading.md)
* [Overriding](./type/05_inheritance.md)
* [Override&nbsp;in&nbsp;Trait](./type/03_trait.md)
### P
* panic
* [print!](./../API/procs.md#print)
* Python
* [Panic](./30_error_handling.md)
* [Patch](./type/07_patch.md)
* [Pattern&nbsp;match](./26_pattern_matching.md)
* [Phantom&nbsp;class](./type/advanced/phantom.md)
* [pipeline&nbsp;operator](./31_pipeline.md)
* [Predicate](./type/19_bound.md)
* [print!]
* [Procedures](./08_procedure.md)
* [Projection&nbsp;Type](./type/advanced/projection.md)
* Python → [Integration&nbsp;with&nbsp;Python](./32_integration_with_Python.md)
### Q
* [Quantified&nbsp;Type](./type/15_quantified.md)
* [Quantified&nbsp;Dependent&nbsp;Type](./type/advanced/quantified_dependent.md)
* [Quantified&nbsp;Types&nbsp;and&nbsp;Dependent&nbsp;Types](./type/15_quantified.md)
### R
* ref
* ref!
* Result
* [Range&nbsp;Object](./01_literal.md)
* [ref]
* [ref!]
* [Record](./13_record.md)
* [Record&nbsp;Type&nbsp;Composite](./type/09_attributive.mda12_refinement.md)
* [Recursive&nbsp;functions](./04_function.md)
* [Refinement&nbsp;pattern](./type/12_refinement.md)
* [Refinement&nbsp;Type](./type/12_refinement.md)
* [replication](./18_ownership.md)
* [Replacing&nbsp;Traits](./type/05_inheritance.md)
* Result → [error&nbsp;handling](./30_error_handling.md)
* [Rewriting&nbsp;Inherited&nbsp;Attributes](./type/05_inheritance.md)
* rootobj
### S
* [Script](./00_basic.md)
* [Selecting&nbsp;Patches](./type/07_patch.md)
* self
* [Self](./type/special.md)
* [Self](./type/advanced/special.md)
* [Shared&nbsp;Reference](./type/advanced/shared.md)
* [side-effect](./07_side_effect.md)
* Str
* [Smart&nbsp;Cast](./type/12_refinement.md)
* [Spread&nbsp;assignment](./28_spread_syntax.md)
* [special&nbsp;type&nbsp;variables](./type/advanced/special.md)
* [Stack&nbsp;trace](30_error_handling.md)
* [Structure&nbsp;type](./type/01_type_system.md)
* [Structural&nbsp;Patch](./type/07_patch.md)
* [Structural&nbsp;Trait](./type/03_trait.md)
* [Structural&nbsp;Subtyping](./type/01_type_system.md)
* [Structural&nbsp;types&nbsp;and&nbsp;class&nbsp;type&nbsp;relationships](./type/16_subtyping.md)
* [Str](./01_literal.md)
* [Subtyping](./type/16_subtyping.md)
* [Subtyping&nbsp;of&nbsp;subroutines](./type/16_subtyping.md)
* [Subtype&nbsp;specification](./type/02_basic.md)
* [Subtyping&nbsp;of&nbsp;Polymorphic&nbsp;Function Types](./type/15_quantified.md)
* [Subroutine&nbsp;Signatures](./22_subroutine.md)
### T
* Traits
* True
* Type
* type
* [Test](./29_decorator.md)
* [Traits](./type/03_trait.md)
* [Trait&nbsp;inclusion](./type/03_trait.md)
* True → [Boolean&nbsp;Object](./01_literal.md)
* [True&nbsp;Algebraic&nbsp;type](./type/13_algebraic.md)
* [Type]
* [type](./15_type.md)
* [Type&nbsp;arguments&nbsp;in&nbsp;method&nbsp;definitions](./type/15_quantified.md)
* [Type&nbsp;Bound](./type/19_bound.md)
* [Type&nbsp;Definitions](./type/01_type_system.md)
* [Type&nbsp;erasure](./type/advanced/erasure.md)
* [Type&nbsp;Inference&nbsp;System](./type/01_type_system.md)
* [Type&nbsp;specification](./type/02_basic.md)
* [Type&nbsp;System](./type/01_type_system.md)
* [Type&nbsp;Widening](./type/advanced/widening.md)
* [Tuple](./11_tuple.md)
### U
* [union](type/13_algebraic.md)
* [Unit](./11_tuple.md)
* [Upcasting](type/17_type_casting.md)
* [Usage&nbsp;of&nbsp;Inheritance](./type/05_inheritance.md)
### V
* [Value&nbsp;Type](./type/08_value.md)
* [Variable](./02_name.md)
* [variable-length&nbsp;arguments](./04_function.md)
### W
* while!
* [while]
### X

View file

@ -3,173 +3,332 @@
[![badge](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fgezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com%2Fdefault%2Fsource_up_to_date%3Fowner%3Derg-lang%26repos%3Derg%26ref%3Dmain%26path%3Ddoc/EN/syntax/indexes.md%26commit_hash%3D438bcb89ea692f219b30f3a3ba107888b23eae98)](https://gezf7g7pd5.execute-api.ap-northeast-1.amazonaws.com/default/source_up_to_date?owner=erg-lang&repos=erg&ref=main&path=doc/EN/syntax/indexes.md&commit_hash=438bcb89ea692f219b30f3a3ba107888b23eae98)
有關不在此索引中的 API請參閱 [此處](../API/index.md)。
有關術語,請參見 [此處](../dev_guide/terms.md)。
有關術語,請參見 [此處](../terms.md)。
## 符號
* !
* !-type → [可變性](./type/mut.md)
* [&#35;](./00_basic.md/#comment)
* $
* ! → [side&nbsp;effect](./07_side_effect.md)
* !-type → [mutable&nbsp;type](./type/18_mut.md)
* ? → [error&nbsp;handling](./30_error_handling.md)
* &#35; → [Str](./00_basic.md/#comment)
* $ → [shared](./type/advanced/shared.md)
* %
* &
* &&
* &prime; (single quote)
* &lpar;&rpar;
* [&prime;&nbsp;(single&nbsp;quote)](./20_naming_rule.md)
* [&quot;&nbsp;(double&nbsp;quote)](./01_literal.md)
* &lpar;&rpar; → [Tuple](./11_tuple.md)
* &ast;
* [*-less multiplication](./01_literal.md/#less-multiplication)
* &plus; (前置)
* &ast; → [*-less&nbsp;multiplication](./01_literal.md/#less-multiplication)
* &plus; (前置) → [operator](./06_operator.md)
* &plus;_ → &plus; (前置)
* &plus; (中置)
* &plus; (中置) → [operator](./06_operator.md)
* &plus; (中置) → [Trait](./type/03_trait.md)
* ,
* &minus; (前置)
* &minus;_ → &minus; (前置)
* &minus; (中置)
* &minus;>
* . → [可見性]
* &minus; (中置) → [operator](./06_operator.md)
* &minus; (中置) → [Trait](./type/03_trait.md)
* &minus;> → [anonymous&nbsp;function](./21_lambda.md)
* . → [Visibility](./19_visibility.md)
* [...&nbsp;assignment](./28_spread_syntax.md)
* [...&nbsp;Extract&nbsp;assignment](./28_spread_syntax.md)
* [...&nbsp;function](./04_function.md)
* /
* :
* :: → [可見性]
* : → [Colon&nbsp;application&nbsp;style](./04_function.md)
* : → [Declaration](./03_declaration.md.md)
* : → [Keyword&nbsp;Arguments](./04_function.md)
* :: → [visibility](./19_visibility.md)
* := → [default&nbsp;parameters](./04_function.md)
* ;
* &lt;
* &lt;:
* &lt;: → [Subtype&nbsp;specification](./type/02_basic.md)
* &lt;&lt;
* &lt;=
* =
* = → [Variable](./19_visibility.md)
* ==
* =>
* => → [procedure](./08_procedure.md)
* &gt;
* &gt;&gt;
* &gt;=
* ?
* @
* []
* \
* @ → [decorator](./29_decorator.md)
* [] → [Array](./10_array.md)
* \ → [Indention](./00_basic.md)
* \ → [Str](./01_literal.md)
* ^
* ^^
* _
* _ → [Type&nbsp;erasure](./type/advanced/erasure.md)
* &#95;+&#95;&plus; (infix)
* &#95;-&#95;&minus; (infix)
*``
* [``&nbsp;(back&nbsp;quote)](./22_subroutine.md)
* {}
* {} type
* [{} type](./type/01_type_system.md)
* {:}
* {=}
* {=} type
* {=} → [Type&nbsp;System](./type/01_type_system.md)
* [{=}&nbsp;type](./13_record.md)
* |
* ||
* || → [Type variable list](./type/advanced/)
* ~
## 字母
## アルファベット
### A
* algebraic&nbsp;type
* And
* and
* assert
* attribute
* [Add]
* [alias](type/02_basic.md)
* [Aliasing](./type/02_basic.md)
* [All&nbsp;symmetric&nbsp;types](./type/15_quantified.md)
* [algebraic&nbsp;type](./type/13_algebraic.md)
* [And]
* [and]
* [anonymous&nbsp;function](./21_lambda.md)
* [Anonymous&nbsp;polycorrelation&nbsp;coefficient](./21_lambda.md)
* anonymous type → [Type&nbsp;System](./type/01_type_system.md)
* [Array](./10_array.md)
* [assert]
* [Attach](./29_decorator.md)
* [attribute](type/09_attributive.md)
* [Attribute&nbsp;definitions](./type/02_basic.md)
* [Attribute&nbsp;Type](./type/09_attributive.md)
### B
* Base
* Bool
* [Bool, Boolean](./01_literal.md)
* [Boolean&nbsp;Object](./01_literal.md)
* [borrow](./18_ownership.md)
### C
* Class
* [Cast](./type/17_type_casting.md)
* [Comments](./00_basic.md)
* [Complex&nbsp;Object](./01_literal.md)
* [Compile-time&nbsp;functions](./04_function.md)
* [circular&nbsp;references](./18_ownership.md)
* [Class](./type/04_class.md)
* [Class&nbsp;Relationship](./type/04_class.md)
* [Class&nbsp;upcasting](./type/16_subtyping.md)
* [Colon&nbsp;application&nbsp;style](./04_function.md)
* [Closure](./23_closure.md)
* [Compound Literals](./01_literal.md)
* [Complement](./type/13_algebraic.md)
* [Comprehension](./27_comprehension.md)
* [constant](./17_mutability.md)
* [Constants](./02_name.md)
* [Context](./30_error_handling.md)
### D
* [Data&nbsp;type](./type/01_type_system.md)
* [Declaration](./03_declaration.md)
* [decorator](./29_decorator.md)
* [Default&nbsp;parameters](./04_function.md)
* [Del](./02_name.md)
* [Dependent&nbsp;Type](./type/14_dependent.md)
* [Deconstructing&nbsp;a&nbsp;record](13_record.md)
* Deprecated
* [Dict](./12_dict.md)
* [Diff](./type/13_algebraic.md)
* [Difference&nbsp;from&nbsp;Data&nbsp;Class](./type/04_class.md)
* [Difference&nbsp;from&nbsp;structural&nbsp;types](type/04_class.md)
* distinct
* [Downcasting](./type/17_type_casting.md)
### E
* enum&nbsp;type
* Eq
* Erg
* [Empty&nbsp;Record](./13_record.md)
* [Enum&nbsp;Class](./type/04_class.md)
* [Enum&nbsp;type](./type/11_enum.md)
* [Enumerated,&nbsp;Interval&nbsp;and&nbsp;Refinement&nbsp;Types](./type/12_refinement.md)
* [error&nbsp;handling](./30_error_handling.md)
* [Existential&nbsp;type](./type/advanced/existential.md)
* [Exponential&nbsp;Literal](./01_literal.md)
* [Extract&nbsp;assignment](./28_spread_syntax.md)
### F
* for
* False → [Boolean Object](./01_literal.md)
* [Float&sbsp;Object](./01_literal.md)
* [for](./05_builtin_funcs.md)
* [For-All&nbsp;Patch](./type/07_patch.md)
* [freeze](./18_ownership.md)
* [Function](./04_function.md)
* [Function&nbsp;definition&nbsp;with&nbsp;multiple patterns](./04_function.md)
### G
* [GADTs(Generalized&nbsp;Algebraic&nbsp;Data&nbsp;Types)](./type/advanced/GADTs.md)
* [Generator](./34_generator.md)
* [Glue&nbsp;Patch](./type/07_patch.md)
### H
### I
* if
* import
* in
* Int
* [id](./09_builtin_procs.md)
* [if](./05_builtin_funcs.md)
* [import](./33_package_system.md)
* [impl](./29_decorator.md)
* [in]
* [Indention](./00_basic.md)
* [Instant&nbsp;Block](./13_record.md)
* [Instance&nbsp;and&nbsp;class&nbsp;attributes](./type/04_class.md)
* [Implementing&nbsp;and&nbsp;resolving&nbsp;duplicate&nbsp;traits&nbsp;in&nbsp;the&nbsp;API](type/03_trait.md)
* [inheritable](./29_decorator.md)
* [inheritance](./type/05_inheritance.md)
* [Inheritance&nbsp;of&nbsp;Enumerated&nbsp;Classes](./type/05_inheritance.md)
* [Int](./01_literal.md)
* [Integration&nbsp;with&nbsp;Python](./32_integration_with_Python.md)
* [Interval&nbsp;Type](./type/10_interval.md)
* [Intersection](./type/13_algebraic.md)
* [Iterator](./16_iterator.md)
### J
### K
* [Keyword&nbsp;arguments](./04_function.md)
* [Kind](./type/advanced/kind.md)
### L
* let-polymorphism → [rank 1 polymorphism]
* log
* lambda → [anonymous&nbsp;function](./21_lambda.md)
* let-polymorphism → [rank&nbsp;1&nbsp;polymorphism]
* [Literal&nbsp;Identifiers](./20_naming_rule.md)
* log → [side&nbsp;effect](./07_side_effect.md)
### M
* match
* [match]
* [Marker&nbsp;Trait](./type/advanced/marker_trait.md)
* [Method](./07_side_effect.md)
* Modifier → [decorator](./29_decorator.md)
* [module](./24_module.md)
* [Multiple&nbsp;Inheritance](type/05_inheritance.md)
* [Multi-layer&nbsp;(multi-level)&nbsp;Inheritance](type/05_inheritance.md)
* [Mutable&nbsp;Type](./type/18_mut.md)
* [Mutable&nbsp;Structure&nbsp;Type](./type/advanced/mut_struct.md)
* [Mutability](./17_mutability.md)
### N
* Nat
* Never
* None
* None
* Not
* not
* [Nat](./01_literal.md)
* [Never]
* [New&nbsp;type](./type/advanced/newtype.md)
* [Heterogeneous&nbsp;Dict](./12_dict.md)
* None → [None&nbsp;Object]
* [None&nbsp;Object]
* Nominal&nbsp;Subtyping → [Class](./type/04_class.md)
* [Not]
* [not]
### O
* Option
* Or
* or
* Ord
* [Object](./25_object_system.md)
* [Option]
* [Or]
* [or]
* [Ord]
* [ownership&nbsp;system](./18_ownership.md)
* [Overloading](./type/advanced/overloading.md)
* [Overriding](./type/05_inheritance.md)
* [Override&nbsp;in&nbsp;Trait](./type/03_trait.md)
### P
* panic
* [print!](./../API/procs.md#print)
* Python
* [Panic](./30_error_handling.md)
* [Patch](./type/07_patch.md)
* [Pattern&nbsp;match](./26_pattern_matching.md)
* [Phantom&nbsp;class](./type/advanced/phantom.md)
* [pipeline&nbsp;operator](./31_pipeline.md)
* [Predicate](./type/19_bound.md)
* [print!]
* [Procedures](./08_procedure.md)
* [Projection&nbsp;Type](./type/advanced/projection.md)
* Python → [Integration&nbsp;with&nbsp;Python](./32_integration_with_Python.md)
### Q
* [Quantified&nbsp;Type](./type/15_quantified.md)
* [Quantified&nbsp;Dependent&nbsp;Type](./type/advanced/quantified_dependent.md)
* [Quantified&nbsp;Types&nbsp;and&nbsp;Dependent&nbsp;Types](./type/15_quantified.md)
### R
* ref
* ref!
* Result
* [Range&nbsp;Object](./01_literal.md)
* [ref]
* [ref!]
* [Record](./13_record.md)
* [Record&nbsp;Type&nbsp;Composite](./type/09_attributive.mda12_refinement.md)
* [Recursive&nbsp;functions](./04_function.md)
* [Refinement&nbsp;pattern](./type/12_refinement.md)
* [Refinement&nbsp;Type](./type/12_refinement.md)
* [replication](./18_ownership.md)
* [Replacing&nbsp;Traits](./type/05_inheritance.md)
* Result → [error&nbsp;handling](./30_error_handling.md)
* [Rewriting&nbsp;Inherited&nbsp;Attributes](./type/05_inheritance.md)
* rootobj
### S
* [Script](./00_basic.md)
* [Selecting&nbsp;Patches](./type/07_patch.md)
* self
* [Self](./type/special.md)
* [Self](./type/advanced/special.md)
* [Shared&nbsp;Reference](./type/advanced/shared.md)
* [side-effect](./07_side_effect.md)
* Str
* [Smart&nbsp;Cast](./type/12_refinement.md)
* [Spread&nbsp;assignment](./28_spread_syntax.md)
* [special&nbsp;type&nbsp;variables](./type/advanced/special.md)
* [Stack&nbsp;trace](30_error_handling.md)
* [Structure&nbsp;type](./type/01_type_system.md)
* [Structural&nbsp;Patch](./type/07_patch.md)
* [Structural&nbsp;Trait](./type/03_trait.md)
* [Structural&nbsp;Subtyping](./type/01_type_system.md)
* [Structural&nbsp;types&nbsp;and&nbsp;class&nbsp;type&nbsp;relationships](./type/16_subtyping.md)
* [Str](./01_literal.md)
* [Subtyping](./type/16_subtyping.md)
* [Subtyping&nbsp;of&nbsp;subroutines](./type/16_subtyping.md)
* [Subtype&nbsp;specification](./type/02_basic.md)
* [Subtyping&nbsp;of&nbsp;Polymorphic&nbsp;Function Types](./type/15_quantified.md)
* [Subroutine&nbsp;Signatures](./22_subroutine.md)
### T
* Traits
* True
* Type
* type
* [Test](./29_decorator.md)
* [Traits](./type/03_trait.md)
* [Trait&nbsp;inclusion](./type/03_trait.md)
* True → [Boolean&nbsp;Object](./01_literal.md)
* [True&nbsp;Algebraic&nbsp;type](./type/13_algebraic.md)
* [Type]
* [type](./15_type.md)
* [Type&nbsp;arguments&nbsp;in&nbsp;method&nbsp;definitions](./type/15_quantified.md)
* [Type&nbsp;Bound](./type/19_bound.md)
* [Type&nbsp;Definitions](./type/01_type_system.md)
* [Type&nbsp;erasure](./type/advanced/erasure.md)
* [Type&nbsp;Inference&nbsp;System](./type/01_type_system.md)
* [Type&nbsp;specification](./type/02_basic.md)
* [Type&nbsp;System](./type/01_type_system.md)
* [Type&nbsp;Widening](./type/advanced/widening.md)
* [Tuple](./11_tuple.md)
### U
* [union](type/13_algebraic.md)
* [Unit](./11_tuple.md)
* [Upcasting](type/17_type_casting.md)
* [Usage&nbsp;of&nbsp;Inheritance](./type/05_inheritance.md)
### V
* [Value&nbsp;Type](./type/08_value.md)
* [Variable](./02_name.md)
* [variable-length&nbsp;arguments](./04_function.md)
### W
* while!
* [while]
### X