Skip to content

Commit ddafecb

Browse files
committed
first commit
0 parents  commit ddafecb

34 files changed

+1943
-0
lines changed

docs/index.md

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Myst
2+
3+
A language for clarity from the start, flexibility when you need it, and efficiency where it matters.
4+
5+
```ruby
6+
deftype List
7+
def contains(element)
8+
each(&fn
9+
->(<element>) { break true }
10+
->(_) { false }
11+
end)
12+
end
13+
end
14+
15+
[1, 2, 3].contains(2) #=> true
16+
```
17+
18+
!!! note "Notice"
19+
Myst is still very early on in its development. While the syntax stabilizing, there's still plenty of room for improvement, and even more openness to new ideas.
20+
21+
If you'd like to help shape the language, be an early adopter, or just follow along as things develop, it'd be great to see you in [our discord server](http://discord.myst-lang.org/) or [on GitHub.](https://github.com/myst-lang/myst)
22+
23+
## **Intro**
24+
25+
Myst is a new programming language with the goal of bridging flexibility and practicality. By directly addressing common traps in modern dynamic programming, Myst provides users the ability to work quickly and easily with the power to write controlled, highly-structured code.
26+
27+
With heavy influences from Ruby, Elixir, Crystal, and other modern languages, Myst combines proven concepts like pattern matching and modular composition with some novel ideas, including global interpolation and fully optional typing. The result is a language that caters to natural thought and logic.
28+
29+
Some of the high-level features of Myst include:
30+
31+
* **Pattern-matching everywhere.** Assignments, method parameters, rescue * clauses, etc.
32+
* **Multi-clause functions.** All functions can define multiple clauses to adapt functionality based on inputs.
33+
* **Value interpolations.** Interpolate any value anywhere (even in * method parameters) with the <> syntax.
34+
* **Soft typing.** Optional type annotations help control functionality without the clutter of conditionals.
35+
* **Raise anything.** Any value can be raised as an exception and pattern matched by a rescue clause.

0 commit comments

Comments
 (0)