diff --git a/doc/EN/syntax/21_lambda.md b/doc/EN/syntax/21_lambda.md index 9a534f48..136a4d36 100644 --- a/doc/EN/syntax/21_lambda.md +++ b/doc/EN/syntax/21_lambda.md @@ -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 diff --git a/doc/EN/syntax/indexes.md b/doc/EN/syntax/indexes.md index 9af73d64..e829fb69 100644 --- a/doc/EN/syntax/indexes.md +++ b/doc/EN/syntax/indexes.md @@ -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 assignment](./28_spread_syntax.md#extract-assignment) + * ... → [Variable-length arguments](./04_function.md#variable-length-arguments) * / * : - * :: → [visibility] + * : → [Colon application style](./04_function.md) + * : → [Type ascription](./03_declaration.md.md) + * : → [Keyword arguments](./04_function.md) + * :: → [private variable modifier](./19_visibility.md) + * := → [default parameters](./04_function.md) * ; * < - * <: + * <: → [Subtype specification](./type/02_basic.md) * << * <= -* = + * <.. → [left-open range operator](./01_literal.md/#range-object) + * <..< → [open range operator](./01_literal.md/#range-object) +* = → [Variable](./19_visibility.md) * == - * => + * => → [anonymous procedure operator](./08_procedure.md) * > * >> * >= -* ? -* @ -* [] -* \ +* @ → [decorator](./29_decorator.md) +* [] → [Array](./10_array.md) +* \ → [Escaping](./00_basic.md) * ^ * ^^ -* _ +* _ → [Type erasure](./type/advanced/erasure.md) * _+_ → + (infix) * _-_ → − (infix) -*`` +* [`` (back quote)](./22_subroutine.md#operator) * {} - * {} type -* {:} -* {=} - * {=} type + * [{} type](./type/01_type_system.md) +* {=} → [Type System](./type/01_type_system.md#classification) + * [{=} type](./13_record.md#empty-record) * | - * || + * || → [Type variable list](./type/advanced/) * ~ ## alphabet ### A -* algebraic type -* And -* and -* assert -* attribute +* [Add] +* [alias](type/02_basic.md#aliasing) +* [Aliasing](./type/02_basic.md#aliasing) +* [All symmetric types](./type/15_quantified.md#all-symmetric-types) +* [algebraic type](./type/13_algebraic.md) +* [And] +* [and] +* [anonymous function](./21_lambda.md) +* anonymous type → [Type system](./type/01_type_system.md) +* [Array](./10_array.md) +* [assert] +* [Attach](./29_decorator.md#attach) +* [attribute](type/09_attributive.md) +* [Attribute definitions](./type/02_basic.md#attribute-definitions) +* [Attribute type](./type/09_attributive.md) ### B -* Base -* Bool +* [Bool, Boolean](./01_literal.md#boolean-object) +* [Boolean 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 object](./01_literal.md#complex-object) +* [Compile-time functions](./04_function.md#compile-time-functions) +* [circular references](./18_ownership.md#circular-references) +* [Class](./type/04_class.md) +* [Class relationship](./type/04_class.md#class-relationships) +* [Class upcasting](./type/16_subtyping.md#class-upcasting) +* [Colon application 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 type](./type/01_type_system.md#data-type) +* [Declaration](./03_declaration.md) +* [decorator](./29_decorator.md) +* [Default parameters](./04_function.md#default-parameters) +* [Del](./02_name.md#delete-an-variable) +* [Dependent 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 type -* Eq -* Erg +* [Empty record](./13_record.md#empty-record) +* [Enum class](./type/04_class.md#enum-class) +* [Enum type](./type/11_enum.md) +* [Enumerated, Interval and Refinement types](./type/12_refinement.md#enumerated-interval-and-refinement-types) +* [error handling](./30_error_handling.md) +* [Existential type](./type/advanced/existential.md) +* [Exponential literal](./01_literal.md#exponential-literal) +* [Extract assignment](./28_spread_syntax.md#extract-assignment) ### F -* for +* False → [Boolean object](./01_literal.md#boolean-object) +* [Float object](./01_literal.md#float-object) +* [for](./05_builtin_funcs.md#for) +* [For-All patch](./type/07_patch.md#for-all-patch) +* [freeze](./18_ownership.md#freeze) +* [Function](./04_function.md) +* [Function definition with multiple patterns](./04_function.md#function-definition-with-multiple-patterns) ### G +* [GADTs(Generalized Algebraic Data Types)](./type/advanced/GADTs.md) +* [Generator](./34_generator.md) +* [Glue 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 block](./13_record.md#instant-block) +* [Instance/class attributes](./type/04_class.md#instance-and-class-attributes) +* [inheritable](./29_decorator.md#inheritable) +* [inheritance](./type/05_inheritance.md) +* [Int](./01_literal.md) +* [Integration with Python](./32_integration_with_Python.md) +* [Interval Type](./type/10_interval.md) +* [Intersection](./type/13_algebraic.md#intersection) +* [Iterator](./16_iterator.md) ### J ### K +* [Keyword arguments](./04_function.md#keyword-arguments) +* [Kind](./type/advanced/kind.md) + ### L -* let-polymorphism → [rank 1 polymorphism] -* log +* lambda → [anonymous function](./21_lambda.md) +* let-polymorphism → [rank 1 polymorphism] +* [Literal Identifiers](./20_naming_rule.md#literal-identifiers) ### M -* match +* [match] +* [Marker trait](./type/advanced/marker_trait.md) +* [Method](./07_side_effect.md#methods) +* Modifier → [decorator](./29_decorator.md) +* [module](./24_module.md) +* [Multiple inheritance](type/05_inheritance.md#multiple-inheritance) +* [Multi-layer (multi-level) Inheritance](type/05_inheritance.md#multi-layer-multi-level-inheritance) +* [Mutable type](./type/18_mut.md) +* [Mutable structure 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 type](./type/advanced/newtype.md) +* [Heterogeneous Dict](./12_dict.md#heterogeneous-dict) +* None → [None Object] +* [None Object] +* Nominal Subtyping → [Class](./type/04_class.md) +* [Not] +* [not] ### O -* Option -* Or -* or -* Ord +* [Object](./25_object_system.md) +* [Option] +* [Or] +* [or] +* [Ord] +* [ownership system](./18_ownership.md) +* [Overloading](./type/advanced/overloading.md) +* [Overriding](./type/05_inheritance.md#overriding) +* [Override in 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 match](./26_pattern_matching.md) +* [Phantom class](./type/advanced/phantom.md) +* [pipeline operator](./31_pipeline.md) +* [Predicate](./type/19_bound.md#predicate) +* [print!] +* [Procedures](./08_procedure.md) +* [Projection type](./type/advanced/projection.md) +* Python → [Integration with Python](./32_integration_with_Python.md) ### Q +* [Quantified type](./type/15_quantified.md) +* [Quantified dependent type](./type/advanced/quantified_dependent.md) + ### R -* ref -* ref! -* Result -* rootobj +* [Range Object](./01_literal.md#range-object) +* [ref] +* [ref!] +* [Record](./13_record.md) +* [Recursive functions](./04_function.md#recursive-functions) +* [Refinement pattern](./type/12_refinement.md#refinement-pattern) +* [Refinement type](./type/12_refinement.md) +* [replication](./18_ownership.md#replication) +* [Replacing traits](./type/05_inheritance.md#replacing-traits-or-what-looks-like-it) +* Result → [error handling](./30_error_handling.md) ### S +* [Script](./00_basic.md#scripts) * self -* [Self](./type/special.md) +* [Self](./type/advanced/special.md) +* [Shared reference](./type/advanced/shared.md) * [side-effect](./07_side_effect.md) -* Str +* [Smart cast](./type/12_refinement.md#smart-cast) +* [Spread assignment](./28_spread_syntax.md) +* [special type variables](./type/advanced/special.md#special-type-variables) +* [Stack trace](30_error_handling.md#stack-trace) +* [Structure type](./type/01_type_system.md#structure-type-anonymous-type) +* [Structural patch](./type/07_patch.md#structural-patch) +* [Structural trait](./type/03_trait.md#structural-traits) +* [Structural subtyping](./type/01_type_system.md#classification) +* [Structural types and class type relationships](./type/16_subtyping.md#structural-types-and-class-type-relationships) +* [Str](./01_literal.md#str-literal) +* [Subtyping](./type/16_subtyping.md) +* [Subtyping of subroutines](./type/16_subtyping.md#subtyping-of-subroutines) +* [Subtype specification](./type/02_basic.md#subtype-specification) +* [Subtyping of polymorphic function types](./type/15_quantified.md#subtyping-of-polymorphic-function-types) +* [Subroutine signatures](./22_subroutine.md) ### T -* Traits -* True -* Type -* type +* [Test](./29_decorator.md#test) +* [Traits](./type/03_trait.md) +* [Trait inclusion](./type/03_trait.md#trait-inclusion) +* True → [Boolean object](./01_literal.md#boolean-object) +* [True algebraic type](./type/13_algebraic.md#true-algebraic-type) +* [Type] +* [type](./15_type.md) +* [Type arguments in method definitions](./type/15_quantified.md#type-arguments-in-method-definitions) +* [Type bound](./type/19_bound.md) +* [Type definitions](./type/01_type_system.md#type-definitions) +* [Type erasure](./type/advanced/erasure.md) +* [Type inference system](./type/01_type_system.md#type-inference-system) +* [Type specification](./type/02_basic.md#type-specification) +* [Type system](./type/01_type_system.md) +* [Type 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 type](./type/08_value.md) +* [Variable](./02_name.md) +* [variable-length arguments](./04_function.md#variable-length-arguments) + ### W -* while! +* [while] ### X ### Y ### Z - diff --git a/doc/EN/syntax/type/06_nst_vs_sst.md b/doc/EN/syntax/type/06_nst_vs_sst.md index 2738cf7f..2870208e 100644 --- a/doc/EN/syntax/type/06_nst_vs_sst.md +++ b/doc/EN/syntax/type/06_nst_vs_sst.md @@ -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.

- Previous | Next + Previous | Next

diff --git a/doc/EN/syntax/type/08_value.md b/doc/EN/syntax/type/08_value.md index 9f0bf89c..c687c684 100644 --- a/doc/EN/syntax/type/08_value.md +++ b/doc/EN/syntax/type/08_value.md @@ -35,3 +35,7 @@ Types classified as value types may be added in the future. --- 1 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) + +

+ Previous | Next +

diff --git a/doc/EN/syntax/type/09_attributive.md b/doc/EN/syntax/type/09_attributive.md index 3098d671..cc368e21 100644 --- a/doc/EN/syntax/type/09_attributive.md +++ b/doc/EN/syntax/type/09_attributive.md @@ -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}`. \ No newline at end of file +For example, `{... {.name = Str; .age = Nat}; ... {.name = Str; .id = Nat}}` becomes `{.name = Str; .age = Nat; .id = Nat}`. + +

+ Previous | Next +

\ No newline at end of file diff --git a/doc/EN/syntax/type/10_interval.md b/doc/EN/syntax/type/10_interval.md index 3d48f0b1..c7f87415 100644 --- a/doc/EN/syntax/type/10_interval.md +++ b/doc/EN/syntax/type/10_interval.md @@ -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" ``` + +

+ Previous | Next +

\ No newline at end of file diff --git a/doc/EN/syntax/type/11_enum.md b/doc/EN/syntax/type/11_enum.md index ef18d8b6..5fa93a77 100644 --- a/doc/EN/syntax/type/11_enum.md +++ b/doc/EN/syntax/type/11_enum.md @@ -83,3 +83,7 @@ OpaqueAbc = Class {inner = {"A", "B", "C"}}. new inner: {"A", "B", "C"} = Self.new {inner;} OpaqueAbc.new("A").is_uppercase() # TypeError ``` + +

+ Previous | Next +

\ No newline at end of file diff --git a/doc/EN/syntax/type/12_refinement.md b/doc/EN/syntax/type/12_refinement.md index 4c0983ec..17c8d592 100644 --- a/doc/EN/syntax/type/12_refinement.md +++ b/doc/EN/syntax/type/12_refinement.md @@ -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) = ... ``` + +

+ Previous | Next +

diff --git a/doc/EN/syntax/type/13_algebraic.md b/doc/EN/syntax/type/13_algebraic.md index 042d6607..8d90940a 100644 --- a/doc/EN/syntax/type/13_algebraic.md +++ b/doc/EN/syntax/type/13_algebraic.md @@ -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. + +

+ Previous | Next +

\ No newline at end of file diff --git a/doc/EN/syntax/type/14_dependent.md b/doc/EN/syntax/type/14_dependent.md index 4871c095..fdcbc209 100644 --- a/doc/EN/syntax/type/14_dependent.md +++ b/doc/EN/syntax/type/14_dependent.md @@ -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]} -``` \ No newline at end of file +``` + +

+ Previous | Next +

\ No newline at end of file diff --git a/doc/EN/syntax/type/15_quantified.md b/doc/EN/syntax/type/15_quantified.md index 5b1dde62..bc94d0cf 100644 --- a/doc/EN/syntax/type/15_quantified.md +++ b/doc/EN/syntax/type/15_quantified.md @@ -278,3 +278,7 @@ DepFn. assert (Int -> Int).type() == Int # by DepFn assert DepFn(Int).type() == Int # by DepFn ``` + +

+ Previous | Next +

\ No newline at end of file diff --git a/doc/EN/syntax/type/16_subtyping.md b/doc/EN/syntax/type/16_subtyping.md index ca71245c..20ec48c3 100644 --- a/doc/EN/syntax/type/16_subtyping.md +++ b/doc/EN/syntax/type/16_subtyping.md @@ -74,3 +74,7 @@ i as (Int or Str) i as (1..10) i as {I: Int | I >= 0} ``` + +

+ Previous | Next +

\ No newline at end of file diff --git a/doc/EN/syntax/type/17_type_casting.md b/doc/EN/syntax/type/17_type_casting.md index f1465b5c..faeb2bfa 100644 --- a/doc/EN/syntax/type/17_type_casting.md +++ b/doc/EN/syntax/type/17_type_casting.md @@ -70,3 +70,7 @@ IntTryFromFloat. then: r.ceil() else: Error "conversion failed". ``` + +

+ Previous | Next +

\ No newline at end of file diff --git a/doc/EN/syntax/type/18_mut.md b/doc/EN/syntax/type/18_mut.md index 137e1954..e0c8d071 100644 --- a/doc/EN/syntax/type/18_mut.md +++ b/doc/EN/syntax/type/18_mut.md @@ -160,4 +160,8 @@ And for the type `T!` which has no internal structure, this instance is simply a --- -1 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) \ No newline at end of file +1 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) + +

+ Previous | Next +

\ No newline at end of file diff --git a/doc/EN/syntax/type/19_bound.md b/doc/EN/syntax/type/19_bound.md index c3365d95..c9c4f820 100644 --- a/doc/EN/syntax/type/19_bound.md +++ b/doc/EN/syntax/type/19_bound.md @@ -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} -``` \ No newline at end of file +``` + +

+ Previous | Next +

\ No newline at end of file diff --git a/doc/JA/syntax/indexes.md b/doc/JA/syntax/indexes.md index 302c00ff..a80774a7 100644 --- a/doc/JA/syntax/indexes.md +++ b/doc/JA/syntax/indexes.md @@ -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) -* [#](./00_basic.md/#コメント) -* $ +* ! → [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) +* [" (double quote)](./01_literal.md) +* () → [Tuple](./11_tuple.md) * * - * [*-less multiplication](./01_literal.md/#less-multiplication) -* + (前置) + * * → [*-less multiplication](./01_literal.md/#less-multiplication) +* + (前置) → [operator](./06_operator.md) * +_ → + (前置) -* + (中置) +* + (中置) → [operator](./06_operator.md) +* + (中置) → [Trait](./type/03_trait.md) * , * − (前置) * −_ → − (前置) -* − (中置) - * −> -* . → [可視性] +* − (中置) → [operator](./06_operator.md) +* − (中置) → [Trait](./type/03_trait.md) + * −> → [anonymous function](./21_lambda.md) +* . → [Visibility](./19_visibility.md) + * [... assignment](./28_spread_syntax.md) + * [... Extract assignment](./28_spread_syntax.md) + * [... function](./04_function.md) * / * : - * :: → [可視性] + * : → [Colon application style](./04_function.md) + * : → [Declaration](./03_declaration.md.md) + * : → [Keyword Arguments](./04_function.md) + * :: → [visibility](./19_visibility.md) + * := → [default parameters](./04_function.md) * ; * < - * <: + * <: → [Subtype specification](./type/02_basic.md) * << * <= -* = +* = → [Variable](./19_visibility.md) * == - * => + * => → [procedure](./08_procedure.md) * > * >> * >= -* ? -* @ -* [] -* \ +* @ → [decorator](./29_decorator.md) +* [] → [Array](./10_array.md) +* \ → [Indention](./00_basic.md) +* \ → [Str](./01_literal.md) * ^ * ^^ -* _ - * _+_ → + (中置) - * _-_ → − (中置) -* `` +* _ → [Type erasure](./type/advanced/erasure.md) + * _+_ → + (infix) + * _-_ → − (infix) +* [`` (back quote)](./22_subroutine.md) * {} - * {} type + * [{} type](./type/01_type_system.md) * {:} -* {=} - * {=} type +* {=} → [Type System](./type/01_type_system.md) + * [{=} type](./13_record.md) * | - * || + * || → [Type variable list](./type/advanced/) * ~ ## アルファベット ### A -* [algebraic type] +* [Add] +* [alias](type/02_basic.md) +* [Aliasing](./type/02_basic.md) +* [All symmetric types](./type/15_quantified.md) +* [algebraic type](./type/13_algebraic.md) * [And] * [and] +* [anonymous function](./21_lambda.md) +* [Anonymous polycorrelation coefficient](./21_lambda.md) +* anonymous type → [Type System](./type/01_type_system.md) +* [Array](./10_array.md) * [assert] -* [attribute] +* [Attach](./29_decorator.md) +* [attribute](type/09_attributive.md) +* [Attribute definitions](./type/02_basic.md) +* [Attribute Type](./type/09_attributive.md) ### B -* [Base] -* [Bool] +* [Bool, Boolean](./01_literal.md) +* [Boolean Object](./01_literal.md) +* [borrow](./18_ownership.md) ### C -* [Class] +* [Cast](./type/17_type_casting.md) +* [Comments](./00_basic.md) +* [Complex Object](./01_literal.md) +* [Compile-time functions](./04_function.md) +* [circular references](./18_ownership.md) +* [Class](./type/04_class.md) +* [Class Relationship](./type/04_class.md) +* [Class upcasting](./type/16_subtyping.md) +* [Colon application 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 type](./type/01_type_system.md) +* [Declaration](./03_declaration.md) +* [decorator](./29_decorator.md) +* [Default parameters](./04_function.md) +* [Del](./02_name.md) +* [Dependent Type](./type/14_dependent.md) +* [Deconstructing a record](13_record.md) * Deprecated -* [distinct] +* [Dict](./12_dict.md) +* [Diff](./type/13_algebraic.md) +* [Difference from Data Class](./type/04_class.md) +* [Difference from structural types](type/04_class.md) +* distinct +* [Downcasting](./type/17_type_casting.md) ### E -* [enum type] -* [Eq] -* [Erg] +* [Empty Record](./13_record.md) +* [Enum Class](./type/04_class.md) +* [Enum type](./type/11_enum.md) +* [Enumerated, Interval and Refinement Types](./type/12_refinement.md) +* [error handling](./30_error_handling.md) +* [Existential type](./type/advanced/existential.md) +* [Exponential Literal](./01_literal.md) +* [Extract 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 Patch](./type/07_patch.md) +* [freeze](./18_ownership.md) +* [Function](./04_function.md) +* [Function definition with multiple patterns](./04_function.md) ### G +* [GADTs(Generalized Algebraic Data Types)](./type/advanced/GADTs.md) +* [Generator](./34_generator.md) +* [Glue 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 Block](./13_record.md) +* [Instance and class attributes](./type/04_class.md) +* [Implementing and resolving duplicate traits in the API](type/03_trait.md) +* [inheritable](./29_decorator.md) +* [inheritance](./type/05_inheritance.md) +* [Inheritance of Enumerated Classes](./type/05_inheritance.md) +* [Int](./01_literal.md) +* [Integration with Python](./32_integration_with_Python.md) +* [Interval Type](./type/10_interval.md) +* [Intersection](./type/13_algebraic.md) +* [Iterator](./16_iterator.md) ### J ### K +* [Keyword arguments](./04_function.md) +* [Kind](./type/advanced/kind.md) + ### L -* let-polymorphism → [ランク1多相] -* [log] +* lambda → [anonymous function](./21_lambda.md) +* let-polymorphism → [rank 1 polymorphism] +* [Literal Identifiers](./20_naming_rule.md) +* log → [side effect](./07_side_effect.md) ### M * [match] +* [Marker Trait](./type/advanced/marker_trait.md) +* [Method](./07_side_effect.md) +* Modifier → [decorator](./29_decorator.md) +* [module](./24_module.md) +* [Multiple Inheritance](type/05_inheritance.md) +* [Multi-layer (multi-level) Inheritance](type/05_inheritance.md) +* [Mutable Type](./type/18_mut.md) +* [Mutable Structure Type](./type/advanced/mut_struct.md) +* [Mutability](./17_mutability.md) ### N -* [Nat] -* Never -* None -* None +* [Nat](./01_literal.md) +* [Never] +* [New type](./type/advanced/newtype.md) +* [Heterogeneous Dict](./12_dict.md) +* None → [None Object] +* [None Object] +* Nominal Subtyping → [Class](./type/04_class.md) * [Not] * [not] ### O +* [Object](./25_object_system.md) * [Option] * [Or] * [or] * [Ord] +* [ownership system](./18_ownership.md) +* [Overloading](./type/advanced/overloading.md) +* [Overriding](./type/05_inheritance.md) +* [Override in Trait](./type/03_trait.md) ### P -* panic -* [print!](./../API/procs.md#print) -* [Python] +* [Panic](./30_error_handling.md) +* [Patch](./type/07_patch.md) +* [Pattern match](./26_pattern_matching.md) +* [Phantom class](./type/advanced/phantom.md) +* [pipeline operator](./31_pipeline.md) +* [Predicate](./type/19_bound.md) +* [print!] +* [Procedures](./08_procedure.md) +* [Projection Type](./type/advanced/projection.md) +* Python → [Integration with Python](./32_integration_with_Python.md) ### Q +* [Quantified Type](./type/15_quantified.md) +* [Quantified Dependent Type](./type/advanced/quantified_dependent.md) +* [Quantified Types and Dependent Types](./type/15_quantified.md) + ### R -* ref -* ref! -* [Result] -* [rootobj] +* [Range Object](./01_literal.md) +* [ref] +* [ref!] +* [Record](./13_record.md) +* [Record Type Composite](./type/09_attributive.mda12_refinement.md) +* [Recursive functions](./04_function.md) +* [Refinement pattern](./type/12_refinement.md) +* [Refinement Type](./type/12_refinement.md) +* [replication](./18_ownership.md) +* [Replacing Traits](./type/05_inheritance.md) +* Result → [error handling](./30_error_handling.md) +* [Rewriting Inherited Attributes](./type/05_inheritance.md) +* rootobj ### S +* [Script](./00_basic.md) +* [Selecting Patches](./type/07_patch.md) * self -* [Self](./type/special.md) +* [Self](./type/advanced/special.md) +* [Shared Reference](./type/advanced/shared.md) * [side-effect](./07_side_effect.md) -* [Str] +* [Smart Cast](./type/12_refinement.md) +* [Spread assignment](./28_spread_syntax.md) +* [special type variables](./type/advanced/special.md) +* [Stack trace](30_error_handling.md) +* [Structure type](./type/01_type_system.md) +* [Structural Patch](./type/07_patch.md) +* [Structural Trait](./type/03_trait.md) +* [Structural Subtyping](./type/01_type_system.md) +* [Structural types and class type relationships](./type/16_subtyping.md) +* [Str](./01_literal.md) +* [Subtyping](./type/16_subtyping.md) +* [Subtyping of subroutines](./type/16_subtyping.md) +* [Subtype specification](./type/02_basic.md) +* [Subtyping of Polymorphic Function Types](./type/15_quantified.md) +* [Subroutine Signatures](./22_subroutine.md) ### T -* Trait -* [True] +* [Test](./29_decorator.md) +* [Traits](./type/03_trait.md) +* [Trait inclusion](./type/03_trait.md) +* True → [Boolean Object](./01_literal.md) +* [True Algebraic type](./type/13_algebraic.md) * [Type] -* [type] +* [type](./15_type.md) +* [Type arguments in method definitions](./type/15_quantified.md) +* [Type Bound](./type/19_bound.md) +* [Type Definitions](./type/01_type_system.md) +* [Type erasure](./type/advanced/erasure.md) +* [Type Inference System](./type/01_type_system.md) +* [Type specification](./type/02_basic.md) +* [Type System](./type/01_type_system.md) +* [Type 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 of Inheritance](./type/05_inheritance.md) + ### V +* [Value Type](./type/08_value.md) +* [Variable](./02_name.md) +* [variable-length arguments](./04_function.md) + ### W -* [while!] +* [while] ### X diff --git a/doc/zh_CN/syntax/indexes.md b/doc/zh_CN/syntax/indexes.md index 100d1c15..64fa8321 100644 --- a/doc/zh_CN/syntax/indexes.md +++ b/doc/zh_CN/syntax/indexes.md @@ -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) -* [#](./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) +* [" (double quote)](./01_literal.md) +* () → [Tuple](./11_tuple.md) * * - * [*-less multiplication](./01_literal.md/#less-multiplication) -* + (前置) + * * → [*-less multiplication](./01_literal.md/#less-multiplication) +* + (前置) → [operator](./06_operator.md) * +_ → + (前置) -* + (中置) +* + (中置) → [operator](./06_operator.md) +* + (中置) → [Trait](./type/03_trait.md) * , * − (前置) * −_ → − (前置) -* − (中置) - * −> -* . → [可见性] +* − (中置) → [operator](./06_operator.md) +* − (中置) → [Trait](./type/03_trait.md) + * −> → [anonymous function](./21_lambda.md) +* . → [Visibility](./19_visibility.md) + * [... assignment](./28_spread_syntax.md) + * [... Extract assignment](./28_spread_syntax.md) + * [... function](./04_function.md) * / * : - * :: → [可见性] + * : → [Colon application style](./04_function.md) + * : → [Declaration](./03_declaration.md.md) + * : → [Keyword Arguments](./04_function.md) + * :: → [visibility](./19_visibility.md) + * := → [default parameters](./04_function.md) * ; * < - * <: + * <: → [Subtype specification](./type/02_basic.md) * << * <= -* = +* = → [Variable](./19_visibility.md) * == - * => + * => → [procedure](./08_procedure.md) * > * >> * >= -* ? -* @ -* [] -* \ +* @ → [decorator](./29_decorator.md) +* [] → [Array](./10_array.md) +* \ → [Indention](./00_basic.md) +* \ → [Str](./01_literal.md) * ^ * ^^ -* _ +* _ → [Type erasure](./type/advanced/erasure.md) * _+_ → + (infix) * _-_ → − (infix) -*`` +* [`` (back quote)](./22_subroutine.md) * {} - * {} type + * [{} type](./type/01_type_system.md) * {:} -* {=} - * {=} type +* {=} → [Type System](./type/01_type_system.md) + * [{=} type](./13_record.md) * | - * || + * || → [Type variable list](./type/advanced/) * ~ -## 字母 +## アルファベット ### A -* algebraic type -* And -* and -* assert -* attribute +* [Add] +* [alias](type/02_basic.md) +* [Aliasing](./type/02_basic.md) +* [All symmetric types](./type/15_quantified.md) +* [algebraic type](./type/13_algebraic.md) +* [And] +* [and] +* [anonymous function](./21_lambda.md) +* [Anonymous polycorrelation coefficient](./21_lambda.md) +* anonymous type → [Type System](./type/01_type_system.md) +* [Array](./10_array.md) +* [assert] +* [Attach](./29_decorator.md) +* [attribute](type/09_attributive.md) +* [Attribute definitions](./type/02_basic.md) +* [Attribute Type](./type/09_attributive.md) ### B -* Base -* Bool +* [Bool, Boolean](./01_literal.md) +* [Boolean Object](./01_literal.md) +* [borrow](./18_ownership.md) ### C -* Class +* [Cast](./type/17_type_casting.md) +* [Comments](./00_basic.md) +* [Complex Object](./01_literal.md) +* [Compile-time functions](./04_function.md) +* [circular references](./18_ownership.md) +* [Class](./type/04_class.md) +* [Class Relationship](./type/04_class.md) +* [Class upcasting](./type/16_subtyping.md) +* [Colon application 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 type](./type/01_type_system.md) +* [Declaration](./03_declaration.md) +* [decorator](./29_decorator.md) +* [Default parameters](./04_function.md) +* [Del](./02_name.md) +* [Dependent Type](./type/14_dependent.md) +* [Deconstructing a record](13_record.md) * Deprecated +* [Dict](./12_dict.md) +* [Diff](./type/13_algebraic.md) +* [Difference from Data Class](./type/04_class.md) +* [Difference from structural types](type/04_class.md) * distinct +* [Downcasting](./type/17_type_casting.md) ### E -* enum type -* Eq -* Erg +* [Empty Record](./13_record.md) +* [Enum Class](./type/04_class.md) +* [Enum type](./type/11_enum.md) +* [Enumerated, Interval and Refinement Types](./type/12_refinement.md) +* [error handling](./30_error_handling.md) +* [Existential type](./type/advanced/existential.md) +* [Exponential Literal](./01_literal.md) +* [Extract 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 Patch](./type/07_patch.md) +* [freeze](./18_ownership.md) +* [Function](./04_function.md) +* [Function definition with multiple patterns](./04_function.md) ### G +* [GADTs(Generalized Algebraic Data Types)](./type/advanced/GADTs.md) +* [Generator](./34_generator.md) +* [Glue 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 Block](./13_record.md) +* [Instance and class attributes](./type/04_class.md) +* [Implementing and resolving duplicate traits in the API](type/03_trait.md) +* [inheritable](./29_decorator.md) +* [inheritance](./type/05_inheritance.md) +* [Inheritance of Enumerated Classes](./type/05_inheritance.md) +* [Int](./01_literal.md) +* [Integration with Python](./32_integration_with_Python.md) +* [Interval Type](./type/10_interval.md) +* [Intersection](./type/13_algebraic.md) +* [Iterator](./16_iterator.md) ### J ### K +* [Keyword arguments](./04_function.md) +* [Kind](./type/advanced/kind.md) + ### L -* let-polymorphism → [rank 1 polymorphism] -* log +* lambda → [anonymous function](./21_lambda.md) +* let-polymorphism → [rank 1 polymorphism] +* [Literal Identifiers](./20_naming_rule.md) +* log → [side effect](./07_side_effect.md) ### M -* match +* [match] +* [Marker Trait](./type/advanced/marker_trait.md) +* [Method](./07_side_effect.md) +* Modifier → [decorator](./29_decorator.md) +* [module](./24_module.md) +* [Multiple Inheritance](type/05_inheritance.md) +* [Multi-layer (multi-level) Inheritance](type/05_inheritance.md) +* [Mutable Type](./type/18_mut.md) +* [Mutable Structure Type](./type/advanced/mut_struct.md) +* [Mutability](./17_mutability.md) ### N -* Nat -* Never -* None -* None -* Not -* not +* [Nat](./01_literal.md) +* [Never] +* [New type](./type/advanced/newtype.md) +* [Heterogeneous Dict](./12_dict.md) +* None → [None Object] +* [None Object] +* Nominal Subtyping → [Class](./type/04_class.md) +* [Not] +* [not] ### O -* Option -* Or -* or -* Ord +* [Object](./25_object_system.md) +* [Option] +* [Or] +* [or] +* [Ord] +* [ownership system](./18_ownership.md) +* [Overloading](./type/advanced/overloading.md) +* [Overriding](./type/05_inheritance.md) +* [Override in Trait](./type/03_trait.md) ### P -* panic -* [print!](./../API/procs.md#print) -* Python +* [Panic](./30_error_handling.md) +* [Patch](./type/07_patch.md) +* [Pattern match](./26_pattern_matching.md) +* [Phantom class](./type/advanced/phantom.md) +* [pipeline operator](./31_pipeline.md) +* [Predicate](./type/19_bound.md) +* [print!] +* [Procedures](./08_procedure.md) +* [Projection Type](./type/advanced/projection.md) +* Python → [Integration with Python](./32_integration_with_Python.md) ### Q +* [Quantified Type](./type/15_quantified.md) +* [Quantified Dependent Type](./type/advanced/quantified_dependent.md) +* [Quantified Types and Dependent Types](./type/15_quantified.md) + ### R -* ref -* ref! -* Result +* [Range Object](./01_literal.md) +* [ref] +* [ref!] +* [Record](./13_record.md) +* [Record Type Composite](./type/09_attributive.mda12_refinement.md) +* [Recursive functions](./04_function.md) +* [Refinement pattern](./type/12_refinement.md) +* [Refinement Type](./type/12_refinement.md) +* [replication](./18_ownership.md) +* [Replacing Traits](./type/05_inheritance.md) +* Result → [error handling](./30_error_handling.md) +* [Rewriting Inherited Attributes](./type/05_inheritance.md) * rootobj ### S +* [Script](./00_basic.md) +* [Selecting Patches](./type/07_patch.md) * self -* [Self](./type/special.md) +* [Self](./type/advanced/special.md) +* [Shared Reference](./type/advanced/shared.md) * [side-effect](./07_side_effect.md) -* Str +* [Smart Cast](./type/12_refinement.md) +* [Spread assignment](./28_spread_syntax.md) +* [special type variables](./type/advanced/special.md) +* [Stack trace](30_error_handling.md) +* [Structure type](./type/01_type_system.md) +* [Structural Patch](./type/07_patch.md) +* [Structural Trait](./type/03_trait.md) +* [Structural Subtyping](./type/01_type_system.md) +* [Structural types and class type relationships](./type/16_subtyping.md) +* [Str](./01_literal.md) +* [Subtyping](./type/16_subtyping.md) +* [Subtyping of subroutines](./type/16_subtyping.md) +* [Subtype specification](./type/02_basic.md) +* [Subtyping of Polymorphic Function Types](./type/15_quantified.md) +* [Subroutine Signatures](./22_subroutine.md) ### T -* Traits -* True -* Type -* type +* [Test](./29_decorator.md) +* [Traits](./type/03_trait.md) +* [Trait inclusion](./type/03_trait.md) +* True → [Boolean Object](./01_literal.md) +* [True Algebraic type](./type/13_algebraic.md) +* [Type] +* [type](./15_type.md) +* [Type arguments in method definitions](./type/15_quantified.md) +* [Type Bound](./type/19_bound.md) +* [Type Definitions](./type/01_type_system.md) +* [Type erasure](./type/advanced/erasure.md) +* [Type Inference System](./type/01_type_system.md) +* [Type specification](./type/02_basic.md) +* [Type System](./type/01_type_system.md) +* [Type 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 of Inheritance](./type/05_inheritance.md) + ### V +* [Value Type](./type/08_value.md) +* [Variable](./02_name.md) +* [variable-length arguments](./04_function.md) + ### W -* while! +* [while] ### X diff --git a/doc/zh_TW/syntax/indexes.md b/doc/zh_TW/syntax/indexes.md index 25fc980e..1d7da35a 100644 --- a/doc/zh_TW/syntax/indexes.md +++ b/doc/zh_TW/syntax/indexes.md @@ -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) -* [#](./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) +* [" (double quote)](./01_literal.md) +* () → [Tuple](./11_tuple.md) * * - * [*-less multiplication](./01_literal.md/#less-multiplication) -* + (前置) + * * → [*-less multiplication](./01_literal.md/#less-multiplication) +* + (前置) → [operator](./06_operator.md) * +_ → + (前置) -* + (中置) +* + (中置) → [operator](./06_operator.md) +* + (中置) → [Trait](./type/03_trait.md) * , * − (前置) * −_ → − (前置) -* − (中置) - * −> -* . → [可見性] +* − (中置) → [operator](./06_operator.md) +* − (中置) → [Trait](./type/03_trait.md) + * −> → [anonymous function](./21_lambda.md) +* . → [Visibility](./19_visibility.md) + * [... assignment](./28_spread_syntax.md) + * [... Extract assignment](./28_spread_syntax.md) + * [... function](./04_function.md) * / * : - * :: → [可見性] + * : → [Colon application style](./04_function.md) + * : → [Declaration](./03_declaration.md.md) + * : → [Keyword Arguments](./04_function.md) + * :: → [visibility](./19_visibility.md) + * := → [default parameters](./04_function.md) * ; * < - * <: + * <: → [Subtype specification](./type/02_basic.md) * << * <= -* = +* = → [Variable](./19_visibility.md) * == - * => + * => → [procedure](./08_procedure.md) * > * >> * >= -* ? -* @ -* [] -* \ +* @ → [decorator](./29_decorator.md) +* [] → [Array](./10_array.md) +* \ → [Indention](./00_basic.md) +* \ → [Str](./01_literal.md) * ^ * ^^ -* _ +* _ → [Type erasure](./type/advanced/erasure.md) * _+_ → + (infix) * _-_ → − (infix) -*`` +* [`` (back quote)](./22_subroutine.md) * {} - * {} type + * [{} type](./type/01_type_system.md) * {:} -* {=} - * {=} type +* {=} → [Type System](./type/01_type_system.md) + * [{=} type](./13_record.md) * | - * || + * || → [Type variable list](./type/advanced/) * ~ -## 字母 +## アルファベット ### A -* algebraic type -* And -* and -* assert -* attribute +* [Add] +* [alias](type/02_basic.md) +* [Aliasing](./type/02_basic.md) +* [All symmetric types](./type/15_quantified.md) +* [algebraic type](./type/13_algebraic.md) +* [And] +* [and] +* [anonymous function](./21_lambda.md) +* [Anonymous polycorrelation coefficient](./21_lambda.md) +* anonymous type → [Type System](./type/01_type_system.md) +* [Array](./10_array.md) +* [assert] +* [Attach](./29_decorator.md) +* [attribute](type/09_attributive.md) +* [Attribute definitions](./type/02_basic.md) +* [Attribute Type](./type/09_attributive.md) ### B -* Base -* Bool +* [Bool, Boolean](./01_literal.md) +* [Boolean Object](./01_literal.md) +* [borrow](./18_ownership.md) ### C -* Class +* [Cast](./type/17_type_casting.md) +* [Comments](./00_basic.md) +* [Complex Object](./01_literal.md) +* [Compile-time functions](./04_function.md) +* [circular references](./18_ownership.md) +* [Class](./type/04_class.md) +* [Class Relationship](./type/04_class.md) +* [Class upcasting](./type/16_subtyping.md) +* [Colon application 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 type](./type/01_type_system.md) +* [Declaration](./03_declaration.md) +* [decorator](./29_decorator.md) +* [Default parameters](./04_function.md) +* [Del](./02_name.md) +* [Dependent Type](./type/14_dependent.md) +* [Deconstructing a record](13_record.md) * Deprecated +* [Dict](./12_dict.md) +* [Diff](./type/13_algebraic.md) +* [Difference from Data Class](./type/04_class.md) +* [Difference from structural types](type/04_class.md) * distinct +* [Downcasting](./type/17_type_casting.md) ### E -* enum type -* Eq -* Erg +* [Empty Record](./13_record.md) +* [Enum Class](./type/04_class.md) +* [Enum type](./type/11_enum.md) +* [Enumerated, Interval and Refinement Types](./type/12_refinement.md) +* [error handling](./30_error_handling.md) +* [Existential type](./type/advanced/existential.md) +* [Exponential Literal](./01_literal.md) +* [Extract 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 Patch](./type/07_patch.md) +* [freeze](./18_ownership.md) +* [Function](./04_function.md) +* [Function definition with multiple patterns](./04_function.md) ### G +* [GADTs(Generalized Algebraic Data Types)](./type/advanced/GADTs.md) +* [Generator](./34_generator.md) +* [Glue 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 Block](./13_record.md) +* [Instance and class attributes](./type/04_class.md) +* [Implementing and resolving duplicate traits in the API](type/03_trait.md) +* [inheritable](./29_decorator.md) +* [inheritance](./type/05_inheritance.md) +* [Inheritance of Enumerated Classes](./type/05_inheritance.md) +* [Int](./01_literal.md) +* [Integration with Python](./32_integration_with_Python.md) +* [Interval Type](./type/10_interval.md) +* [Intersection](./type/13_algebraic.md) +* [Iterator](./16_iterator.md) ### J ### K +* [Keyword arguments](./04_function.md) +* [Kind](./type/advanced/kind.md) + ### L -* let-polymorphism → [rank 1 polymorphism] -* log +* lambda → [anonymous function](./21_lambda.md) +* let-polymorphism → [rank 1 polymorphism] +* [Literal Identifiers](./20_naming_rule.md) +* log → [side effect](./07_side_effect.md) ### M -* match +* [match] +* [Marker Trait](./type/advanced/marker_trait.md) +* [Method](./07_side_effect.md) +* Modifier → [decorator](./29_decorator.md) +* [module](./24_module.md) +* [Multiple Inheritance](type/05_inheritance.md) +* [Multi-layer (multi-level) Inheritance](type/05_inheritance.md) +* [Mutable Type](./type/18_mut.md) +* [Mutable Structure Type](./type/advanced/mut_struct.md) +* [Mutability](./17_mutability.md) ### N -* Nat -* Never -* None -* None -* Not -* not +* [Nat](./01_literal.md) +* [Never] +* [New type](./type/advanced/newtype.md) +* [Heterogeneous Dict](./12_dict.md) +* None → [None Object] +* [None Object] +* Nominal Subtyping → [Class](./type/04_class.md) +* [Not] +* [not] ### O -* Option -* Or -* or -* Ord +* [Object](./25_object_system.md) +* [Option] +* [Or] +* [or] +* [Ord] +* [ownership system](./18_ownership.md) +* [Overloading](./type/advanced/overloading.md) +* [Overriding](./type/05_inheritance.md) +* [Override in Trait](./type/03_trait.md) ### P -* panic -* [print!](./../API/procs.md#print) -* Python +* [Panic](./30_error_handling.md) +* [Patch](./type/07_patch.md) +* [Pattern match](./26_pattern_matching.md) +* [Phantom class](./type/advanced/phantom.md) +* [pipeline operator](./31_pipeline.md) +* [Predicate](./type/19_bound.md) +* [print!] +* [Procedures](./08_procedure.md) +* [Projection Type](./type/advanced/projection.md) +* Python → [Integration with Python](./32_integration_with_Python.md) ### Q +* [Quantified Type](./type/15_quantified.md) +* [Quantified Dependent Type](./type/advanced/quantified_dependent.md) +* [Quantified Types and Dependent Types](./type/15_quantified.md) + ### R -* ref -* ref! -* Result +* [Range Object](./01_literal.md) +* [ref] +* [ref!] +* [Record](./13_record.md) +* [Record Type Composite](./type/09_attributive.mda12_refinement.md) +* [Recursive functions](./04_function.md) +* [Refinement pattern](./type/12_refinement.md) +* [Refinement Type](./type/12_refinement.md) +* [replication](./18_ownership.md) +* [Replacing Traits](./type/05_inheritance.md) +* Result → [error handling](./30_error_handling.md) +* [Rewriting Inherited Attributes](./type/05_inheritance.md) * rootobj ### S +* [Script](./00_basic.md) +* [Selecting Patches](./type/07_patch.md) * self -* [Self](./type/special.md) +* [Self](./type/advanced/special.md) +* [Shared Reference](./type/advanced/shared.md) * [side-effect](./07_side_effect.md) -* Str +* [Smart Cast](./type/12_refinement.md) +* [Spread assignment](./28_spread_syntax.md) +* [special type variables](./type/advanced/special.md) +* [Stack trace](30_error_handling.md) +* [Structure type](./type/01_type_system.md) +* [Structural Patch](./type/07_patch.md) +* [Structural Trait](./type/03_trait.md) +* [Structural Subtyping](./type/01_type_system.md) +* [Structural types and class type relationships](./type/16_subtyping.md) +* [Str](./01_literal.md) +* [Subtyping](./type/16_subtyping.md) +* [Subtyping of subroutines](./type/16_subtyping.md) +* [Subtype specification](./type/02_basic.md) +* [Subtyping of Polymorphic Function Types](./type/15_quantified.md) +* [Subroutine Signatures](./22_subroutine.md) ### T -* Traits -* True -* Type -* type +* [Test](./29_decorator.md) +* [Traits](./type/03_trait.md) +* [Trait inclusion](./type/03_trait.md) +* True → [Boolean Object](./01_literal.md) +* [True Algebraic type](./type/13_algebraic.md) +* [Type] +* [type](./15_type.md) +* [Type arguments in method definitions](./type/15_quantified.md) +* [Type Bound](./type/19_bound.md) +* [Type Definitions](./type/01_type_system.md) +* [Type erasure](./type/advanced/erasure.md) +* [Type Inference System](./type/01_type_system.md) +* [Type specification](./type/02_basic.md) +* [Type System](./type/01_type_system.md) +* [Type 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 of Inheritance](./type/05_inheritance.md) + ### V +* [Value Type](./type/08_value.md) +* [Variable](./02_name.md) +* [variable-length arguments](./04_function.md) + ### W -* while! +* [while] ### X