Add WIP README.md
I still need to add more examples to it, and as I work on the language, the syntax will certainly change, and I will hopefully change the README to reflect these changes as they happen.
This commit is contained in:
parent
1a04677440
commit
1688296528
111
README.md
Normal file
111
README.md
Normal file
@ -0,0 +1,111 @@
|
||||
# Python++
|
||||
|
||||
I created this language as a result of my frustrations with Python.
|
||||
|
||||
Currently my language is significantly worse than Python, and needs a lot of work before it can be considered functional.
|
||||
|
||||
## Hello World
|
||||
|
||||
```
|
||||
print("Hello, World!\n");
|
||||
```
|
||||
|
||||
The following is a non-comprehensive list of stuff that currently works.
|
||||
|
||||
## Assignment & Declaration
|
||||
|
||||
```
|
||||
a: str= "Hello, World!\n";
|
||||
b: int = 0;
|
||||
c: str;
|
||||
```
|
||||
|
||||
## Structs
|
||||
|
||||
```
|
||||
struct MyStruct {
|
||||
field1: int,
|
||||
field2: str,
|
||||
field3: SomeOtherStruct
|
||||
}
|
||||
|
||||
my_struct: MyStruct = MyStruct{
|
||||
field1=1,
|
||||
field2="Hello, World!",
|
||||
field3=SomeOtherStruct{...} // whatever SomeOtherStruct takes
|
||||
};
|
||||
|
||||
my_struct.field1 = 2;
|
||||
plus5: int = my_struct.field1 + 5;
|
||||
```
|
||||
|
||||
## Enums
|
||||
|
||||
```
|
||||
enum Weekday {
|
||||
Monday,
|
||||
Tuesday,
|
||||
Wednesday,
|
||||
Thursday,
|
||||
Friday,
|
||||
Saturday,
|
||||
Sunday
|
||||
}
|
||||
|
||||
day: Weekday = Weekday.Tuesday;
|
||||
|
||||
match day in {
|
||||
case Monday do { ... }
|
||||
case Tuesday do { ... }
|
||||
case Wednesday do { ... }
|
||||
case Thursday do { ... }
|
||||
case Friday do { ... }
|
||||
case _ do { ... } // default
|
||||
}
|
||||
```
|
||||
or
|
||||
```
|
||||
enum IntResult {
|
||||
Ok(int),
|
||||
Err(Error)
|
||||
}
|
||||
|
||||
result: IntResult = Ok(5);
|
||||
|
||||
match result in {
|
||||
case Ok(num) do { ... } // num is defined in this scope
|
||||
case Err(err) do { ... } // similarly err is defined in this scope
|
||||
}
|
||||
```
|
||||
Currently, polymorphic structs/enums are not supported, however I plan to eventually do so.
|
||||
|
||||
## Functions
|
||||
|
||||
```
|
||||
func random_number(seed: int) -> int {
|
||||
return 42;
|
||||
}
|
||||
|
||||
my_random_number = random_number(69);
|
||||
|
||||
func min(a: int, b: int) -> int {
|
||||
if a < b return a;
|
||||
return b;
|
||||
}
|
||||
|
||||
the_min = min(5, 10);
|
||||
```
|
||||
|
||||
## Arrays
|
||||
|
||||
## For loops
|
||||
|
||||
## While loops
|
||||
|
||||
## Reading files
|
||||
|
||||
## Importing
|
||||
|
||||
## Assertions
|
||||
|
||||
## Tuples
|
Loading…
Reference in New Issue
Block a user