From 14078984e00acf7c8d77bb70fcfcb9f2e5fcfceb Mon Sep 17 00:00:00 2001 From: GreasySlug <9619abgoni@gmail.com> Date: Sat, 24 Sep 2022 17:03:25 +0900 Subject: [PATCH 01/10] Doc: add links to subtitle in syntax dir --- doc/EN/syntax/indexes.md | 160 ++++++++++++++++++++++++++++++--------- 1 file changed, 124 insertions(+), 36 deletions(-) diff --git a/doc/EN/syntax/indexes.md b/doc/EN/syntax/indexes.md index 9af73d64..bbda077d 100644 --- a/doc/EN/syntax/indexes.md +++ b/doc/EN/syntax/indexes.md @@ -1,19 +1,20 @@ # index See [here](../API/index.md) for APIs not in this index. -See [here](../dev_guide/terms.md) for terminology. +See [here](../terms.md) for terminology. ## symbol -* ! - * !-type → [mutable type](./type/mut.md) +* [!](./07_side_effect.md) + * !-type → [mutable type](./type/18_mut.md) * [#](./00_basic.md/#comment) -* $ +* [$](./type/advanced/shared.md) * % * & * && -* ′ (single quote) -* () +* [′ (single quote)](./20_naming_rule.md#literal-identifiers) +* [" (double quote)](./01_literal.md#str-literal) +* () → Tuple * * * [*-less multiplication](./01_literal.md/#less-multiplication) * + (prefix) @@ -23,11 +24,12 @@ See [here](../dev_guide/terms.md) for terminology. * − (prefix) * −_ → − (prefix) * − (infix) - * −> -* . → [Visibility] + * −> → anonymous function +* . → Visibility * / * : - * :: → [visibility] + * :: → visibility + * := → Default parameters * ; * < * <: @@ -35,90 +37,140 @@ See [here](../dev_guide/terms.md) for terminology. * <= * = * == - * => + * => → procedure * > * >> * >= * ? -* @ -* [] +* @ → decorator +* [] → Array * \ * ^ * ^^ * _ * _+_ → + (infix) * _-_ → − (infix) -*`` +* [`` (back quote)](./22_subroutine.md#operator) * {} - * {} type -* {:} -* {=} - * {=} type + * {} type → Compound literals +* {:} → Set +* {=} → Record + * {=} type → Record * | - * || + * || → Quantified Dependent Type * ~ ## alphabet ### A -* algebraic type +* [Add](../API/types/traits/Add(R%2CO).md) +* [alias](type/02_basic.md#aliasing) +* [algebraic type](./type/13_algebraic.md) * And * and +* [anonymous function](./21_lambda.md) +* [Array](./10_array.md) * assert -* attribute +* [Attach](./29_decorator.md#attach) +* [attribute](type/09_attributive.md) +* [Attribute Type](./type/09_attributive.md) ### B * Base * Bool +* [borrow](18_ownership.md#borrow) ### C -* Class +* [Cast](./type/17_type_casting.md) +* [circular references](./18_ownership.md#circular-references) +* [Class](./type/04_class.md) +* [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 +* [Declaration](./03_declaration.md) +* [decorator](./29_decorator.md) +* [Default parameters](./04_function.md#default-parameters) +* [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 +* [Enum type](./type/11_enum.md) +* [Enumerated, Interval and Shift Types](./type/12_refinement.md#enumerated-interval-and-sift-types) +* [Eq](../API/types/traits/Eq.md) +* [Erg](../faq_general.md) +* [error handling](./30_error_handling.md) +* [Existential type](./type/advanced/existential.md) +* [Extract assignment](./28_spread_syntax.md#extract-assignment) ### F -* for +* [for](./05_builtin_funcs.md#for) +* [freeze](./18_ownership.md#freeze) +* [Function](./04_function.md) ### 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 +* [if](./05_builtin_funcs.md#if) * import +* [impl](./29_decorator.md#impl) * in -* Int +* [inheritable](./29_decorator.md#inheritable) +* [inheritance](./type/05_inheritance.md) +* [Int](./01_literal.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 +* lambda → [anonymous function] * let-polymorphism → [rank 1 polymorphism] * log ### M * match +* [Marker&sbsp;Trait](./type/advanced/marker_trait.md) +* [Method](./07_side_effect.md#methods) +* Modifier → decorator +* [module](./24_module.md) +* [Mutable Type](./type/18_mut.md) +* [Mutable Structure Type](./type/advanced/mut_struct.md) ### N -* Nat +* +* [Nat](./01_literal.md#int-literal) * Never * None * None @@ -127,47 +179,83 @@ See [here](../dev_guide/terms.md) for terminology. ### O +* [Object](./25_object_system.md) * Option * Or * or -* Ord +* [Ord](../API/types/traits/Ord.md) +* [ownership system](./18_ownership.md) + * ownership ### P -* panic +* [panic](./30_error_handling.md#panic) +* [Patch](./type/07_patch.md) +* [Phantom class](./type/advanced/phantom.md) +* [pipeline operator](./31_pipeline.md) * [print!](./../API/procs.md#print) -* Python +* [Procedures](./08_procedure.md) +* [Projection%nbsp;Type](./type/advanced/projection.md) +* [Python](../python/index.md) ### Q +* [Quantified Type](./type/15_quantified.md) +* [Quantified Dependent Type](./type/advanced/quantified_dependent.md) + ### R * ref * ref! +* [Record](./13_record.md) +* [Recursive%nbsp;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) * Result * rootobj ### S +* [Selecting Patches](./type/07_patch.md#selecting-patches) * self * [Self](./type/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) +* [stack trace](30_error_handling.md#stack-trace) +* [Str](./01_literal.md#str-literal) +* [Subtyping](./type/16_subtyping.md) +* [Subtype specification](./type/02_basic.md#subtype-specification) +* [Subroutine Signatures](./22_subroutine.md) ### T -* Traits +* [Test](./29_decorator.md#test) +* [Traits](./type/03_trait.md) * True -* Type -* type +* [True Algebraic type](./type/13_algebraic.md#true-algebraic-type) +* [Type](./type/01_type_system.md) +* [type](./15_type.md) +* [Type erasure](./type/advanced/erasure.md) +* [Tuple](./11_tuple.md) ### U +* [union](type/13_algebraic.md#union) +* unit → Tuple +* [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!](../API/procs.md#while-cond-bool-block---nonetype) ### X From b713e6f5cf9570255ccf44d14166cb2a9984f55a Mon Sep 17 00:00:00 2001 From: GreasySlug <9619abgoni@gmail.com> Date: Tue, 27 Sep 2022 09:46:08 +0900 Subject: [PATCH 02/10] Doc: add missing links in type dir --- doc/EN/syntax/type/06_nst_vs_sst.md | 2 +- doc/EN/syntax/type/08_value.md | 4 ++++ doc/EN/syntax/type/09_attributive.md | 6 +++++- doc/EN/syntax/type/10_interval.md | 4 ++++ doc/EN/syntax/type/11_enum.md | 4 ++++ doc/EN/syntax/type/12_refinement.md | 4 ++++ doc/EN/syntax/type/13_algebraic.md | 4 ++++ doc/EN/syntax/type/14_dependent.md | 6 +++++- doc/EN/syntax/type/15_quantified.md | 4 ++++ doc/EN/syntax/type/16_subtyping.md | 4 ++++ doc/EN/syntax/type/17_type_casting.md | 4 ++++ doc/EN/syntax/type/18_mut.md | 6 +++++- doc/EN/syntax/type/19_bound.md | 6 +++++- 13 files changed, 53 insertions(+), 5 deletions(-) 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..fd88e84c 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..3e054be8 100644 --- a/doc/EN/syntax/type/12_refinement.md +++ b/doc/EN/syntax/type/12_refinement.md @@ -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 +

\ No newline at end of file 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..54392b5a 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..b3058cbd 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..1e61fb89 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..601583f9 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 +

\ No newline at end of file From d0973d4d059e7768c0f719e01518dd00dd00a553 Mon Sep 17 00:00:00 2001 From: GreasySlug <9619abgoni@gmail.com> Date: Tue, 27 Sep 2022 12:59:09 +0900 Subject: [PATCH 03/10] Doc: add links by first review --- doc/EN/syntax/indexes.md | 126 +++++++++++++++++++++++++++------------ 1 file changed, 88 insertions(+), 38 deletions(-) diff --git a/doc/EN/syntax/indexes.md b/doc/EN/syntax/indexes.md index bbda077d..e1861738 100644 --- a/doc/EN/syntax/indexes.md +++ b/doc/EN/syntax/indexes.md @@ -7,6 +7,7 @@ See [here](../terms.md) for terminology. * [!](./07_side_effect.md) * !-type → [mutable type](./type/18_mut.md) +* ? → error handling * [#](./00_basic.md/#comment) * [$](./type/advanced/shared.md) * % @@ -17,129 +18,156 @@ See [here](../terms.md) for terminology. * () → Tuple * * * [*-less multiplication](./01_literal.md/#less-multiplication) -* + (prefix) +* + (prefix) → operator * +_ → + (prefix) -* + (infix) +* + (infix) → operator * , * − (prefix) * −_ → − (prefix) * − (infix) * −> → anonymous function * . → Visibility + * [... function](./04_function.md#variable-length-arguments) + * [... assignment](./28_spread_syntax.md) + * [... Extract assignment](./28_spread_syntax.md#extract-assignment) * / * : + * : → Colon application style + * : → Keyword Arguments + * : → variable * :: → visibility - * := → Default parameters + * [:=](./04_function.md#default-parameters) * ; * < - * <: + * <: → Subtype specification * << * <= -* = +* = → Variable * == * => → procedure * > * >> * >= -* ? * @ → decorator * [] → Array * \ * ^ * ^^ -* _ +* _ → Type erasure * _+_ → + (infix) * _-_ → − (infix) * [`` (back quote)](./22_subroutine.md#operator) * {} - * {} type → Compound literals -* {:} → Set -* {=} → Record - * {=} type → Record + * {} type → Structure type +* {:} +* [{=}](./type/01_type_system.md#classification) + * [{=} type](./13_record.md#empty-record) * | * || → Quantified Dependent Type + * || → Trait * ~ ## alphabet ### A -* [Add](../API/types/traits/Add(R%2CO).md) +* [Add] * [alias](type/02_basic.md#aliasing) +* [Aliasing](./type/02_basic.md#aliasing) * [algebraic type](./type/13_algebraic.md) * And -* and +* and → Trait Inclusion * [anonymous function](./21_lambda.md) +* [Anonymous polycorrelation coefficient](./21_lambda.md#anonymous-polycorrelation-coefficient) * [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 -* [borrow](18_ownership.md#borrow) +* Base → Class +* [Boolean](./01_literal.md#boolean-object) +* [Boolean Object](./01_literal.md#boolean-object) +* [borrow](./18_ownership.md#borrow) ### C * [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) +* [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) +* [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) +* [Deconstructing a record] * Deprecated * [Dict](./12_dict.md) * [Diff](./type/13_algebraic.md#diff) +* [Difference from structural types](type/04_class.md#difference-from-structural-types) * distinct * [Downcasting](./type/17_type_casting.md#downcasting) ### E +* [Enum Class](./type/04_class.md#enum-class) * [Enum type](./type/11_enum.md) * [Enumerated, Interval and Shift Types](./type/12_refinement.md#enumerated-interval-and-sift-types) -* [Eq](../API/types/traits/Eq.md) -* [Erg](../faq_general.md) * [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 +* False → Boolean Object +* [Float&sbsp;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) +* [Glue Patch](./type/07_patch.md#glue-patch) ### H ### I +* [id](./09_builtin_procs.md#id) * [if](./05_builtin_funcs.md#if) -* import +* import → Integration with Python * [impl](./29_decorator.md#impl) * in +* [Indention](./00_basic.md#indentation) +* [Instant Block](./13_record.md#instant-block) * [inheritable](./29_decorator.md#inheritable) * [inheritance](./type/05_inheritance.md) +* [Inheritance of Enumerated Classes](./type/05_inheritance.md#inheritance) * [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) @@ -155,6 +183,7 @@ See [here](../terms.md) for terminology. * lambda → [anonymous function] * let-polymorphism → [rank 1 polymorphism] +* [Literal Identifiers](./20_naming_rule.md#literal-identifiers) * log ### M @@ -164,18 +193,21 @@ See [here](../terms.md) for terminology. * [Method](./07_side_effect.md#methods) * Modifier → decorator * [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](./01_literal.md#int-literal) * Never -* None -* None +* [New type](./type/advanced/newtype.md) +* [Heterogeneous Dict](./12_dict.md#heterogeneous-dict) +* None → [None Object] * Not -* not +* not → Trait inclusion ### O @@ -183,20 +215,24 @@ See [here](../terms.md) for terminology. * Option * Or * or -* [Ord](../API/types/traits/Ord.md) +* [Ord] * [ownership system](./18_ownership.md) - * ownership +* [Overloading](./type/advanced/overloading.md) +* [Overriding](./type/05_inheritance.md#overriding) +* [Override in Trait](./type/03_trait.md#override-in-trait) ### P -* [panic](./30_error_handling.md#panic) +* [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) -* [print!](./../API/procs.md#print) +* [Predicate](./type/19_bound.md#predicate) +* [print!] * [Procedures](./08_procedure.md) * [Projection%nbsp;Type](./type/advanced/projection.md) -* [Python](../python/index.md) +* Python → Integration with Python ### Q @@ -205,6 +241,7 @@ See [here](../terms.md) for terminology. ### R +* [Range Object](./01_literal.md#range-object) * ref * ref! * [Record](./13_record.md) @@ -212,19 +249,25 @@ See [here](../terms.md) for terminology. * [Refinement pattern](./type/12_refinement.md#refinement-pattern) * [Refinement Type](./type/12_refinement.md) * [replication](./18_ownership.md#replication) -* Result +* [Replacing Traits](./type/05_inheritance.md#replacing-traits-or-what-looks-like-it) +* Result → error handling +* [Rewriting Inherited Attributes](./type/05_inheritance.md#rewriting-inherited-attributes) * rootobj ### S +* [Script](./00_basic.md#scripts) * [Selecting Patches](./type/07_patch.md#selecting-patches) -* self -* [Self](./type/special.md) +* self → Visibility +* [Self](./type/advanced/special.md) * [Shared Reference](./type/advanced/shared.md) * [side-effect](./07_side_effect.md) * [Smart Cast](./type/12_refinement.md#smart-cast) * [Spread assignment](./28_spread_syntax.md) -* [stack trace](30_error_handling.md#stack-trace) +* [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) * [Str](./01_literal.md#str-literal) * [Subtyping](./type/16_subtyping.md) * [Subtype specification](./type/02_basic.md#subtype-specification) @@ -234,18 +277,25 @@ See [here](../terms.md) for terminology. * [Test](./29_decorator.md#test) * [Traits](./type/03_trait.md) -* True +* [Trait inclusion](./type/03_trait.md#trait-inclusion) +* True → Boolean Object * [True Algebraic type](./type/13_algebraic.md#true-algebraic-type) * [Type](./type/01_type_system.md) * [type](./15_type.md) -* [Type erasure](./type/advanced/erasure.md) +* [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 Widening](./type/advanced/widening.md) * [Tuple](./11_tuple.md) ### U * [union](type/13_algebraic.md#union) -* unit → Tuple +* [Unit](./11_tuple.md#unit) * [Upcasting](type/17_type_casting.md#upcasting) +* [Usage of Inheritance](./type/05_inheritance.md#usage-of-inheritance) ### V @@ -255,7 +305,7 @@ See [here](../terms.md) for terminology. ### W -* [while!](../API/procs.md#while-cond-bool-block---nonetype) +* [while!] ### X From 709bf74682c3530f0852c035f806a1120c71ba45 Mon Sep 17 00:00:00 2001 From: GreasySlug <9619abgoni@gmail.com> Date: Tue, 27 Sep 2022 15:16:48 +0900 Subject: [PATCH 04/10] Doc: replace symbol's links and add missing links --- doc/EN/syntax/indexes.md | 143 +++++++++++++++++++++++---------------- 1 file changed, 83 insertions(+), 60 deletions(-) diff --git a/doc/EN/syntax/indexes.md b/doc/EN/syntax/indexes.md index e1861738..84fc20b4 100644 --- a/doc/EN/syntax/indexes.md +++ b/doc/EN/syntax/indexes.md @@ -1,70 +1,74 @@ # index See [here](../API/index.md) for APIs not in this index. + See [here](../terms.md) for terminology. ## symbol -* [!](./07_side_effect.md) - * !-type → [mutable type](./type/18_mut.md) -* ? → error handling -* [#](./00_basic.md/#comment) -* [$](./type/advanced/shared.md) +* ! → [side&sbsp;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)](./20_naming_rule.md#literal-identifiers) * [" (double quote)](./01_literal.md#str-literal) -* () → Tuple +* () → [Tuple](./11_tuple.md) * * - * [*-less multiplication](./01_literal.md/#less-multiplication) -* + (prefix) → operator + * * → [*-less multiplication](./01_literal.md/#less-multiplication) +* + (prefix) → [operator](./06_operator.md) * +_ → + (prefix) -* + (infix) → operator +* + (infix) → [operator](./06_operator.md) +* + (infix) → [Trait](./type/03_trait.md) * , * − (prefix) * −_ → − (prefix) -* − (infix) - * −> → anonymous function -* . → Visibility - * [... function](./04_function.md#variable-length-arguments) +* − (infix) → [operator](./06_operator.md) +* − (infix) → [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#extract-assignment) + * [... function](./04_function.md#variable-length-arguments) * / * : - * : → Colon application style - * : → Keyword Arguments - * : → variable - * :: → visibility - * [:=](./04_function.md#default-parameters) + * : → [Colon application style](./04_function.md) + * : → [Declaration](./03_declaration.md.md) + * : → [Keyword&bsp;Arguments](./04_function.md) + * :: → [visibility](./19_visibility.md) + * := → [default parameters](./04_function.md) * ; * < - * <: → Subtype specification + * <: → [Subtype specification](./type/02_basic.md) * << * <= -* = → Variable +* = → [Variable](./19_visibility.md) * == - * => → procedure + * => → [procedure](./08_procedure.md) * > * >> * >= -* @ → decorator -* [] → Array -* \ +* @ → [decorator](./29_decorator.md) +* [] → [Array](./10_array.md) +* \ → [Indention](./00_basic.md) +* \ → [Str](./01_literal.md) * ^ * ^^ -* _ → Type erasure +* _ → [Type erasure](./type/advanced/erasure.md) * _+_ → + (infix) * _-_ → − (infix) * [`` (back quote)](./22_subroutine.md#operator) * {} - * {} type → Structure type + * {} type → [Structure type](./type/01_type_system.md) * {:} -* [{=}](./type/01_type_system.md#classification) - * [{=} type](./13_record.md#empty-record) +* {=} → [Type System](./type/01_type_system.md#classification) + * {=} → [ type](./13_record.md#empty-record) * | - * || → Quantified Dependent Type - * || → Trait + * || → [Quantified Dependent Type](./type/advanced/quantified_dependent.md) + * || → [Trait](./type/03_trait.md) * ~ ## alphabet @@ -74,13 +78,15 @@ See [here](../terms.md) for terminology. * [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 → Trait Inclusion +* [And] +* [and] * [anonymous function](./21_lambda.md) * [Anonymous polycorrelation coefficient](./21_lambda.md#anonymous-polycorrelation-coefficient) +* anonymous type → [Type System](./type/01_type_system.md) * [Array](./10_array.md) -* assert +* [assert] * [Attach](./29_decorator.md#attach) * [attribute](type/09_attributive.md) * [Attribute definitions](./type/02_basic.md#attribute-definitions) @@ -88,7 +94,7 @@ See [here](../terms.md) for terminology. ### B -* Base → Class +* Base → [Class](./type/04_class.md) * [Boolean](./01_literal.md#boolean-object) * [Boolean Object](./01_literal.md#boolean-object) * [borrow](./18_ownership.md#borrow) @@ -101,6 +107,8 @@ See [here](../terms.md) for terminology. * [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) @@ -118,16 +126,18 @@ See [here](../terms.md) for terminology. * [Default parameters](./04_function.md#default-parameters) * [Del](./02_name.md#delete-an-variable) * [Dependent Type](./type/14_dependent.md) -* [Deconstructing a record] +* [Deconstructing a record](13_record.md#deconstructing-a-record) * Deprecated * [Dict](./12_dict.md) -* [Diff](./type/13_algebraic.md#diff) +* [Diff](./type/13_algebraic.md#diff) +* [Difference from Data Class](./type/04_class.md#difference-from-data-class) * [Difference from structural types](type/04_class.md#difference-from-structural-types) * distinct * [Downcasting](./type/17_type_casting.md#downcasting) ### E +* [Empty Record](./13_record.md#empty-record) * [Enum Class](./type/04_class.md#enum-class) * [Enum type](./type/11_enum.md) * [Enumerated, Interval and Shift Types](./type/12_refinement.md#enumerated-interval-and-sift-types) @@ -158,14 +168,16 @@ See [here](../terms.md) for terminology. * [id](./09_builtin_procs.md#id) * [if](./05_builtin_funcs.md#if) -* import → Integration with Python +* import → [Integration with Python](32_integration_with_Python.md) * [impl](./29_decorator.md#impl) -* in +* [in] * [Indention](./00_basic.md#indentation) * [Instant Block](./13_record.md#instant-block) +* [Instance and class attributes](./type/04_class.md#instance-and-class-attributes) +* [Implementing and resolving duplicate traits in the API](type/03_trait.md#implementing-and-resolving-duplicate-traits-in-the-api) * [inheritable](./29_decorator.md#inheritable) * [inheritance](./type/05_inheritance.md) -* [Inheritance of Enumerated Classes](./type/05_inheritance.md#inheritance) +* [Inheritance of Enumerated Classes](./type/05_inheritance.md#inheritance) * [Int](./01_literal.md) * [Integration with Python](./32_integration_with_Python.md) * [Interval Type](./type/10_interval.md) @@ -181,17 +193,17 @@ See [here](../terms.md) for terminology. ### L -* lambda → [anonymous function] -* let-polymorphism → [rank 1 polymorphism] +* lambda → [anonymous function](./21_lambda.md) +* let-polymorphism → [rank 1 polymorphism] * [Literal Identifiers](./20_naming_rule.md#literal-identifiers) -* log +* log → [side effect](./07_side_effect.md) ### M -* match +* [match] * [Marker&sbsp;Trait](./type/advanced/marker_trait.md) * [Method](./07_side_effect.md#methods) -* Modifier → decorator +* 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) @@ -202,19 +214,21 @@ See [here](../terms.md) for terminology. ### N * [Nat](./01_literal.md#int-literal) -* Never +* [Never] * [New type](./type/advanced/newtype.md) * [Heterogeneous Dict](./12_dict.md#heterogeneous-dict) * None → [None Object] -* Not -* not → Trait inclusion +* [None Object] +* Nominal Subtyping → [Class](./type/04_class.md) +* [Not] +* [not] ### O * [Object](./25_object_system.md) -* Option -* Or -* or +* [Option] +* [Or] +* [or] * [Ord] * [ownership system](./18_ownership.md) * [Overloading](./type/advanced/overloading.md) @@ -232,25 +246,27 @@ See [here](../terms.md) for terminology. * [print!] * [Procedures](./08_procedure.md) * [Projection%nbsp;Type](./type/advanced/projection.md) -* Python → Integration with Python +* 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#quantified-types-and-dependent-types) ### R * [Range Object](./01_literal.md#range-object) -* ref -* ref! +* [ref] +* [ref!] * [Record](./13_record.md) -* [Recursive%nbsp;functions](./04_function.md#recursive-functions) +* [Record Type Composite](./type/09_attributive.mda12_refinement.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 +* Result → [error handling](./30_error_handling.md) * [Rewriting Inherited Attributes](./type/05_inheritance.md#rewriting-inherited-attributes) * rootobj @@ -258,7 +274,7 @@ See [here](../terms.md) for terminology. * [Script](./00_basic.md#scripts) * [Selecting Patches](./type/07_patch.md#selecting-patches) -* self → Visibility +* self → [Visibility](./19_visibility.md) * [Self](./type/advanced/special.md) * [Shared Reference](./type/advanced/shared.md) * [side-effect](./07_side_effect.md) @@ -266,11 +282,16 @@ See [here](../terms.md) for terminology. * [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) +* [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 → [Patch](./type/07_patch.md) +* [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 @@ -278,15 +299,17 @@ See [here](../terms.md) for terminology. * [Test](./29_decorator.md#test) * [Traits](./type/03_trait.md) * [Trait inclusion](./type/03_trait.md#trait-inclusion) -* True → Boolean Object +* True → [Boolean Object] * [True Algebraic type](./type/13_algebraic.md#true-algebraic-type) -* [Type](./type/01_type_system.md) +* [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) @@ -305,7 +328,7 @@ See [here](../terms.md) for terminology. ### W -* [while!] +* [while] ### X From 00682a94603fed2b531898200a79f2b4a64d5aae Mon Sep 17 00:00:00 2001 From: GreasySlug <9619abgoni@gmail.com> Date: Tue, 27 Sep 2022 15:17:15 +0900 Subject: [PATCH 05/10] Doc: fix wrong md links --- doc/EN/syntax/type/14_dependent.md | 2 +- doc/EN/syntax/type/15_quantified.md | 2 +- doc/EN/syntax/type/18_mut.md | 2 +- doc/EN/syntax/type/19_bound.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/EN/syntax/type/14_dependent.md b/doc/EN/syntax/type/14_dependent.md index 54392b5a..fdcbc209 100644 --- a/doc/EN/syntax/type/14_dependent.md +++ b/doc/EN/syntax/type/14_dependent.md @@ -74,5 +74,5 @@ MyStruct!(T, N: Nat!) = Class {.array: [T; !N]} ```

- Previous | Next + 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 b3058cbd..bc94d0cf 100644 --- a/doc/EN/syntax/type/15_quantified.md +++ b/doc/EN/syntax/type/15_quantified.md @@ -280,5 +280,5 @@ assert DepFn(Int).type() == Int # by DepFn ```

- Previous | Next + 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 1e61fb89..e0c8d071 100644 --- a/doc/EN/syntax/type/18_mut.md +++ b/doc/EN/syntax/type/18_mut.md @@ -163,5 +163,5 @@ 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)

- Previous | Next + 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 601583f9..7de9ce01 100644 --- a/doc/EN/syntax/type/19_bound.md +++ b/doc/EN/syntax/type/19_bound.md @@ -18,5 +18,5 @@ GeneralizedOdd = {I | U; I <: Div(Nat, U); I % 2 == 0} ```

- Previous + Previous | Next

\ No newline at end of file From 412a6fd1ea507a7afa1304bcef642dfe6b3a0872 Mon Sep 17 00:00:00 2001 From: GreasySlug <9619abgoni@gmail.com> Date: Tue, 27 Sep 2022 15:21:13 +0900 Subject: [PATCH 06/10] Doc: fix wrong links --- doc/EN/syntax/type/09_attributive.md | 2 +- doc/EN/syntax/type/19_bound.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/EN/syntax/type/09_attributive.md b/doc/EN/syntax/type/09_attributive.md index fd88e84c..cc368e21 100644 --- a/doc/EN/syntax/type/09_attributive.md +++ b/doc/EN/syntax/type/09_attributive.md @@ -9,5 +9,5 @@ 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}`.

- Previous | Next + 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 7de9ce01..c9c4f820 100644 --- a/doc/EN/syntax/type/19_bound.md +++ b/doc/EN/syntax/type/19_bound.md @@ -18,5 +18,5 @@ GeneralizedOdd = {I | U; I <: Div(Nat, U); I % 2 == 0} ```

- Previous | Next + Previous | Next

\ No newline at end of file From 94015f61ed0018714a6271ecf60ff2ca38733ce6 Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama Date: Tue, 27 Sep 2022 21:45:26 +0900 Subject: [PATCH 07/10] Update docs --- doc/EN/syntax/indexes.md | 35 +++++++++++++---------------- doc/EN/syntax/type/12_refinement.md | 6 ++--- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/doc/EN/syntax/indexes.md b/doc/EN/syntax/indexes.md index 84fc20b4..8b2c5c8b 100644 --- a/doc/EN/syntax/indexes.md +++ b/doc/EN/syntax/indexes.md @@ -6,7 +6,7 @@ See [here](../terms.md) for terminology. ## symbol -* ! → [side&sbsp;effect](./07_side_effect.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) @@ -37,7 +37,7 @@ See [here](../terms.md) for terminology. * : * : → [Colon application style](./04_function.md) * : → [Declaration](./03_declaration.md.md) - * : → [Keyword&bsp;Arguments](./04_function.md) + * : → [Keyword Arguments](./04_function.md) * :: → [visibility](./19_visibility.md) * := → [default parameters](./04_function.md) * ; @@ -62,13 +62,12 @@ See [here](../terms.md) for terminology. * _-_ → − (infix) * [`` (back quote)](./22_subroutine.md#operator) * {} - * {} type → [Structure type](./type/01_type_system.md) + * [{} type](./type/01_type_system.md) * {:} * {=} → [Type System](./type/01_type_system.md#classification) - * {=} → [ type](./13_record.md#empty-record) + * [{=} type](./13_record.md#empty-record) * | - * || → [Quantified Dependent Type](./type/advanced/quantified_dependent.md) - * || → [Trait](./type/03_trait.md) + * || → [Type variable list](./type/advanced/) * ~ ## alphabet @@ -94,8 +93,7 @@ See [here](../terms.md) for terminology. ### B -* Base → [Class](./type/04_class.md) -* [Boolean](./01_literal.md#boolean-object) +* [Bool, Boolean](./01_literal.md#boolean-object) * [Boolean Object](./01_literal.md#boolean-object) * [borrow](./18_ownership.md#borrow) @@ -140,7 +138,7 @@ See [here](../terms.md) for terminology. * [Empty Record](./13_record.md#empty-record) * [Enum Class](./type/04_class.md#enum-class) * [Enum type](./type/11_enum.md) -* [Enumerated, Interval and Shift Types](./type/12_refinement.md#enumerated-interval-and-sift-types) +* [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) @@ -148,7 +146,7 @@ See [here](../terms.md) for terminology. ### F -* False → Boolean Object +* False → [Boolean Object](./01_literal.md#boolean-object) * [Float&sbsp;Object](./01_literal.md#float-object) * [for](./05_builtin_funcs.md#for) * [For-All Patch](./type/07_patch.md#for-all-patch) @@ -168,7 +166,7 @@ See [here](../terms.md) for terminology. * [id](./09_builtin_procs.md#id) * [if](./05_builtin_funcs.md#if) -* import → [Integration with Python](32_integration_with_Python.md) +* [import](./33_package_system.md) * [impl](./29_decorator.md#impl) * [in] * [Indention](./00_basic.md#indentation) @@ -188,8 +186,8 @@ See [here](../terms.md) for terminology. ### K - * [Keyword arguments](./04_function.md#keyword-arguments) - * [Kind](./type/advanced/kind.md) +* [Keyword arguments](./04_function.md#keyword-arguments) +* [Kind](./type/advanced/kind.md) ### L @@ -201,7 +199,7 @@ See [here](../terms.md) for terminology. ### M * [match] -* [Marker&sbsp;Trait](./type/advanced/marker_trait.md) +* [Marker Trait](./type/advanced/marker_trait.md) * [Method](./07_side_effect.md#methods) * Modifier → [decorator](./29_decorator.md) * [module](./24_module.md) @@ -245,7 +243,7 @@ See [here](../terms.md) for terminology. * [Predicate](./type/19_bound.md#predicate) * [print!] * [Procedures](./08_procedure.md) -* [Projection%nbsp;Type](./type/advanced/projection.md) +* [Projection Type](./type/advanced/projection.md) * Python → [Integration with Python](./32_integration_with_Python.md) ### Q @@ -274,7 +272,7 @@ See [here](../terms.md) for terminology. * [Script](./00_basic.md#scripts) * [Selecting Patches](./type/07_patch.md#selecting-patches) -* self → [Visibility](./19_visibility.md) +* self * [Self](./type/advanced/special.md) * [Shared Reference](./type/advanced/shared.md) * [side-effect](./07_side_effect.md) @@ -285,7 +283,7 @@ See [here](../terms.md) for terminology. * [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 → [Patch](./type/07_patch.md) +* [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) @@ -299,7 +297,7 @@ See [here](../terms.md) for terminology. * [Test](./29_decorator.md#test) * [Traits](./type/03_trait.md) * [Trait inclusion](./type/03_trait.md#trait-inclusion) -* True → [Boolean Object] +* True → [Boolean Object](./01_literal.md#boolean-object) * [True Algebraic type](./type/13_algebraic.md#true-algebraic-type) * [Type] * [type](./15_type.md) @@ -335,4 +333,3 @@ See [here](../terms.md) for terminology. ### Y ### Z - diff --git a/doc/EN/syntax/type/12_refinement.md b/doc/EN/syntax/type/12_refinement.md index 3e054be8..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}`. @@ -76,4 +76,4 @@ Array(T, N | N >= 3)

Previous | Next -

\ No newline at end of file +

From 5b9285d0b089c2ff8e4bc2478c02d25a5866725f Mon Sep 17 00:00:00 2001 From: GreasySlug <9619abgoni@gmail.com> Date: Wed, 28 Sep 2022 16:22:52 +0900 Subject: [PATCH 08/10] Doc: copy indexes from En and remove in-page links --- doc/JA/syntax/indexes.md | 281 +++++++++++++++++++++++++-------- doc/zh_CN/syntax/indexes.md | 299 +++++++++++++++++++++++++++--------- doc/zh_TW/syntax/indexes.md | 299 +++++++++++++++++++++++++++--------- 3 files changed, 678 insertions(+), 201 deletions(-) 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 From a68d32035b431b1f8d55a9fda2b9c782119990a3 Mon Sep 17 00:00:00 2001 From: gmshiba Date: Wed, 28 Sep 2022 17:27:14 +0900 Subject: [PATCH 09/10] Update indexes.md --- doc/EN/syntax/indexes.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/EN/syntax/indexes.md b/doc/EN/syntax/indexes.md index 8b2c5c8b..0a6dfb9f 100644 --- a/doc/EN/syntax/indexes.md +++ b/doc/EN/syntax/indexes.md @@ -2,7 +2,7 @@ See [here](../API/index.md) for APIs not in this index. -See [here](../terms.md) for terminology. +Also, see [here](../terms.md) for terminology. ## symbol @@ -30,15 +30,17 @@ See [here](../terms.md) for terminology. * − (infix) → [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#extract-assignment) - * [... function](./04_function.md#variable-length-arguments) + * .. → [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) * / * : * : → [Colon application style](./04_function.md) * : → [Declaration](./03_declaration.md.md) * : → [Keyword Arguments](./04_function.md) - * :: → [visibility](./19_visibility.md) + * :: → [private variable modifier](./19_visibility.md) * := → [default parameters](./04_function.md) * ; * < @@ -47,7 +49,7 @@ See [here](../terms.md) for terminology. * <= * = → [Variable](./19_visibility.md) * == - * => → [procedure](./08_procedure.md) + * => → [anonymous procedure operator](./08_procedure.md) * > * >> * >= @@ -194,7 +196,6 @@ See [here](../terms.md) for terminology. * lambda → [anonymous function](./21_lambda.md) * let-polymorphism → [rank 1 polymorphism] * [Literal Identifiers](./20_naming_rule.md#literal-identifiers) -* log → [side effect](./07_side_effect.md) ### M @@ -266,7 +267,6 @@ See [here](../terms.md) for terminology. * [Replacing Traits](./type/05_inheritance.md#replacing-traits-or-what-looks-like-it) * Result → [error handling](./30_error_handling.md) * [Rewriting Inherited Attributes](./type/05_inheritance.md#rewriting-inherited-attributes) -* rootobj ### S From 304882f403ee8a6db8e19fae67b15ccf9747b6ff Mon Sep 17 00:00:00 2001 From: gmshiba Date: Wed, 28 Sep 2022 17:58:29 +0900 Subject: [PATCH 10/10] Update docs --- doc/EN/syntax/21_lambda.md | 2 +- doc/EN/syntax/indexes.md | 105 +++++++++++++++++-------------------- 2 files changed, 48 insertions(+), 59 deletions(-) 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 0a6dfb9f..e829fb69 100644 --- a/doc/EN/syntax/indexes.md +++ b/doc/EN/syntax/indexes.md @@ -38,8 +38,8 @@ Also, see [here](../terms.md) for terminology. * / * : * : → [Colon application style](./04_function.md) - * : → [Declaration](./03_declaration.md.md) - * : → [Keyword Arguments](./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) * ; @@ -47,6 +47,8 @@ Also, see [here](../terms.md) for terminology. * <: → [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) @@ -55,8 +57,7 @@ Also, see [here](../terms.md) for terminology. * >= * @ → [decorator](./29_decorator.md) * [] → [Array](./10_array.md) -* \ → [Indention](./00_basic.md) -* \ → [Str](./01_literal.md) +* \ → [Escaping](./00_basic.md) * ^ * ^^ * _ → [Type erasure](./type/advanced/erasure.md) @@ -65,7 +66,6 @@ Also, see [here](../terms.md) for terminology. * [`` (back quote)](./22_subroutine.md#operator) * {} * [{} type](./type/01_type_system.md) -* {:} * {=} → [Type System](./type/01_type_system.md#classification) * [{=} type](./13_record.md#empty-record) * | @@ -84,34 +84,33 @@ Also, see [here](../terms.md) for terminology. * [And] * [and] * [anonymous function](./21_lambda.md) -* [Anonymous polycorrelation coefficient](./21_lambda.md#anonymous-polycorrelation-coefficient) -* anonymous type → [Type System](./type/01_type_system.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) +* [Attribute type](./type/09_attributive.md) ### B * [Bool, Boolean](./01_literal.md#boolean-object) -* [Boolean Object](./01_literal.md#boolean-object) -* [borrow](./18_ownership.md#borrow) +* [Boolean object](./01_literal.md#boolean-object) +* [borrowing](./18_ownership.md#borrow) ### C * [Cast](./type/17_type_casting.md) * [Comments](./00_basic.md#comments) -* [Complex Object](./01_literal.md#complex-object) +* [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 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) +* [Compound literals](./01_literal.md#compound-literals) * [Complement](./type/13_algebraic.md#complement) * [Comprehension](./27_comprehension.md) * [constant](./17_mutability.md#constant) @@ -125,33 +124,30 @@ Also, see [here](../terms.md) for terminology. * [decorator](./29_decorator.md) * [Default parameters](./04_function.md#default-parameters) * [Del](./02_name.md#delete-an-variable) -* [Dependent Type](./type/14_dependent.md) -* [Deconstructing a record](13_record.md#deconstructing-a-record) +* [Dependent type](./type/14_dependent.md) * Deprecated * [Dict](./12_dict.md) * [Diff](./type/13_algebraic.md#diff) -* [Difference from Data Class](./type/04_class.md#difference-from-data-class) -* [Difference from structural types](type/04_class.md#difference-from-structural-types) * distinct * [Downcasting](./type/17_type_casting.md#downcasting) ### E -* [Empty Record](./13_record.md#empty-record) -* [Enum Class](./type/04_class.md#enum-class) +* [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) +* [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) +* [Exponential literal](./01_literal.md#exponential-literal) * [Extract assignment](./28_spread_syntax.md#extract-assignment) ### F -* False → [Boolean Object](./01_literal.md#boolean-object) -* [Float&sbsp;Object](./01_literal.md#float-object) +* 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) +* [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) @@ -172,12 +168,10 @@ Also, see [here](../terms.md) for terminology. * [impl](./29_decorator.md#impl) * [in] * [Indention](./00_basic.md#indentation) -* [Instant Block](./13_record.md#instant-block) -* [Instance and class attributes](./type/04_class.md#instance-and-class-attributes) -* [Implementing and resolving duplicate traits in the API](type/03_trait.md#implementing-and-resolving-duplicate-traits-in-the-api) +* [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) -* [Inheritance of Enumerated Classes](./type/05_inheritance.md#inheritance) * [Int](./01_literal.md) * [Integration with Python](./32_integration_with_Python.md) * [Interval Type](./type/10_interval.md) @@ -200,14 +194,14 @@ Also, see [here](../terms.md) for terminology. ### M * [match] -* [Marker Trait](./type/advanced/marker_trait.md) +* [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) +* [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) +* [Mutable type](./type/18_mut.md) +* [Mutable structure type](./type/advanced/mut_struct.md) * [Mutability](./17_mutability.md) ### N @@ -232,7 +226,7 @@ Also, see [here](../terms.md) for terminology. * [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) +* [Override in trait](./type/03_trait.md#override-in-trait) ### P @@ -244,14 +238,13 @@ Also, see [here](../terms.md) for terminology. * [Predicate](./type/19_bound.md#predicate) * [print!] * [Procedures](./08_procedure.md) -* [Projection Type](./type/advanced/projection.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#quantified-types-and-dependent-types) +* [Quantified type](./type/15_quantified.md) +* [Quantified dependent type](./type/advanced/quantified_dependent.md) ### R @@ -259,56 +252,53 @@ Also, see [here](../terms.md) for terminology. * [ref] * [ref!] * [Record](./13_record.md) -* [Record Type Composite](./type/09_attributive.mda12_refinement.md) * [Recursive functions](./04_function.md#recursive-functions) * [Refinement pattern](./type/12_refinement.md#refinement-pattern) -* [Refinement Type](./type/12_refinement.md) +* [Refinement type](./type/12_refinement.md) * [replication](./18_ownership.md#replication) -* [Replacing Traits](./type/05_inheritance.md#replacing-traits-or-what-looks-like-it) +* [Replacing traits](./type/05_inheritance.md#replacing-traits-or-what-looks-like-it) * Result → [error handling](./30_error_handling.md) -* [Rewriting Inherited Attributes](./type/05_inheritance.md#rewriting-inherited-attributes) ### S * [Script](./00_basic.md#scripts) -* [Selecting Patches](./type/07_patch.md#selecting-patches) * self * [Self](./type/advanced/special.md) -* [Shared Reference](./type/advanced/shared.md) +* [Shared reference](./type/advanced/shared.md) * [side-effect](./07_side_effect.md) -* [Smart Cast](./type/12_refinement.md#smart-cast) +* [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 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) +* [Subtyping of polymorphic function types](./type/15_quantified.md#subtyping-of-polymorphic-function-types) +* [Subroutine signatures](./22_subroutine.md) ### T * [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) +* 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 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 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) +* [Type system](./type/01_type_system.md) +* [Type widening](./type/advanced/widening.md) * [Tuple](./11_tuple.md) ### U @@ -316,11 +306,10 @@ Also, see [here](../terms.md) for terminology. * [union](type/13_algebraic.md#union) * [Unit](./11_tuple.md#unit) * [Upcasting](type/17_type_casting.md#upcasting) -* [Usage of Inheritance](./type/05_inheritance.md#usage-of-inheritance) ### V -* [Value Type](./type/08_value.md) +* [Value type](./type/08_value.md) * [Variable](./02_name.md) * [variable-length arguments](./04_function.md#variable-length-arguments)