diff --git a/index.html b/index.html index 793f975..adf0649 100644 --- a/index.html +++ b/index.html @@ -1,196 +1,234 @@ - - - -Hi — a corely symbolic language - - - - - +Hi — a symbolic programming language + + + + - - -
-
- -
- -
-
- alpha -
+ +
+
+
+
+ +
+
-
+
+
-
-
-
-
-
-

Hi — a corely symbolic language

-

Inspired by JavaScript. Designed to read the same in every culture.

-

- Hi keeps the core of the language mostly symbols and uses words only when words are truly clearer. Fewer keywords, fewer fences to learning, more global legibility. -

-
    -
  • Declaration: :
  • -
  • Assignment: =
  • -
  • Private: # prefix
  • -
  • Blocks: {} is always both an object and a callable block
  • -
  • Print: _()
  • -
-

Below, code uses JavaScript highlighting while Hi’s highlighter is being finalized.

-
+
+ +
+
+
Say more with less
+

Hi — a symbolic language for everyone

+

+ Hi is a tiny language inspired by JavaScript, but “corely” symbolic: it prefers + symbols over keywords so the core feels universal, readable, and language-agnostic. + Fewer words. Clearer intent. Same power. +

+
+ Familiar like JS + Global by design + Symbolic core +
+ +
+
+ +
+
Core idea
+
Symbols first. Words when needed.
+
You already read punctuation. Hi leans into that.
+
-
-
-
-
A quick taste
+
-
-
-
-
-
+
+ + + +
-
-
-
Blocks that think and hold state
+
+
+
+
-
-
-
-
-
+
+ + + +
-
-
-
Conditions, truthiness, and clarity
+
+
+
+
-
-
-
-
-
+
+ + + +
-
-
-
Arrays and iteration
+
+
+
+
-
-
-
-
-
+
+ + + +
-
-
-
Design notes
+
+
+
+
-
-
-
-
-
+
+ + + +
-
-
-
-
-
-
- - + - + + + +## Core symbols at a glance +- \`:\` declaration (bind a name) +- \`=\` assignment (update a value) +- \`{}\` Block: a container that is both an object and a function +- \`()\` call / parameters +- \`[]\` list / indexing +- \`#\` private property prefix +- \`==\` is equivalent to JS \`===\` + ` - +### Parameters +The last expression in a Block is returned (like Rust). +\`\`\`js +withParams: (str) { _(str) } +withParams("Hello") // → Hello +\`\`\` +> Inside a Block, private names (\`#value\`) are accessible without the \`#\` prefix. + ` - +### Loops +\`\`\`js +// for loop +(i: 0; i < 4; i = i + 1) * { _("i = " + i) } - - - - - - - - - - - - +