shelby3 / Lucid

Lucid programming language.
0 stars 0 forks source link

Syntax #1

Open shelby3 opened 7 years ago

shelby3 commented 7 years ago

Syntax of identifier names:

Everywhere a-z really means a-z𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃, A-Z really means A-Z𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩, and 0-9 really means 0-9𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡.

Design points:

References:

https://github.com/keean/zenscript/issues/11#issuecomment-249375781 thru https://github.com/keean/zenscript/issues/11#issuecomment-249386453. https://github.com/keean/zenscript/issues/11#issuecomment-249405587 thru https://github.com/keean/zenscript/issues/11#issuecomment-249440439. https://github.com/keean/zenscript/issues/11#issuecomment-249720509 thru https://github.com/keean/zenscript/issues/11#issuecomment-249741723.

shelby3 commented 7 years ago

Syntax of a Python-like yet more structured block indenting with line continuations:

https://github.com/keean/zenscript/issues/11#issuecomment-305987788

shelby3 commented 7 years ago
  1. Syntax, type annotation, and typing of functions (definitions and call sites), including default arguments, named arguments, and overloaded function names:

    https://github.com/keean/zenscript/issues/6#issuecomment-305624956 thru https://github.com/keean/zenscript/issues/6#issuecomment-306021582 https://github.com/keean/zenscript/issues/6#issuecomment-306324398

    Inline function shorthand: https://github.com/keean/zenscript/issues/11#issuecomment-249277181 & https://github.com/keean/zenscript/issues/6#issuecomment-248631325

  2. Typeclasses (although perhaps we prefer to start with manual dependency injection):

    https://github.com/keean/zenscript/issues/30#issuecomment-302123983 thru https://github.com/keean/zenscript/issues/30#issuecomment-302952957

    Including design patterns for avoiding HKT:

    https://github.com/keean/zenscript/issues/27#issuecomment-302921541 thru https://github.com/keean/zenscript/issues/27#issuecomment-303283072

  3. Inferred HRT:

    https://github.com/keean/zenscript/issues/27#issuecomment-302055101 https://github.com/keean/zenscript/issues/6#issuecomment-306381433

shelby3 commented 7 years ago

Syntax for non-block-indented if (…) … else … ternary “operator” expression and syntax of block-indented if-else, do-loop if, and while:

https://github.com/keean/zenscript/issues/11#issuecomment-286645796

shelby3 commented 7 years ago

Syntax and design of modules, exports, private keyword in general, and import:

https://github.com/keean/zenscript/issues/11#issuecomment-306974094 thru https://github.com/keean/zenscript/issues/11#issuecomment-307558325 https://github.com/keean/zenscript/issues/14#issuecomment-302775198 thru https://github.com/keean/zenscript/issues/14#issuecomment-308722477

shelby3 commented 7 years ago

Syntax for (simplified data and) alias (instead of (see also) the keyword type) for anonymous structurally typed, type-indexed-tagged, partial-order-disjointed sum (aka) union (but not intersection (see also)!) types:

https://github.com/keean/zenscript/issues/13#issuecomment-303445358 https://github.com/keean/zenscript/issues/13#issuecomment-303538864

To create nominal sum type, wrap it in a data type:

https://github.com/keean/zenscript/issues/13#issuecomment-303552617

shelby3 commented 7 years ago

Type annotations for r/w access restrictions, borrowing, optional types, and unboxed, packed binary records:

https://github.com/keean/zenscript/issues/32#issuecomment-301060409