Actualiser README.md

📝 changed languages order and update the introduction
main
bog 2024-03-18 14:46:56 +00:00
parent 5863ff5212
commit 5605cbfac8
1 changed files with 58 additions and 57 deletions

115
README.md
View File

@ -1,6 +1,6 @@
# Hello ! Welcome to my gitea account :)
# Hello ! Welcome to my gitea instance :)
I have a **real** obsession for programming language design and development. I did a lot of prototypes, and most of them are just crappy full of bugs programs. **But**, some projects are ok as prototypes.
I have a **real** obsession for programming language design and development. I did a lot of prototypes, most of them help me to improve, to learn and to test ideas I had.
Here you will find short descriptions of some languages I am not too ashamed to show. Some of them look like BASIC, and others like LISP. All of them was made with love, and dropped with the hope to make something better.
@ -31,22 +31,6 @@ end
```
---
[roza](https://git.shellbox.fr/bog/roza) is pretty much a clone of wuz with a syntax slightly different.
```
# functions are first class citizens
let a = fun (x as int, y as int) -> int
return x + y
end
# function calls using curly brackets
assert 12 == {a 9 3}
assert 6 == {a {a 1 2} 3}
```
---
[grino](https://git.shellbox.fr/bog/grino) adopt a more functional lisp like syntax. Keywords are as short as possible: the function ``$`` is used to declare variables and the function ``->`` returns a lambda.
```
@ -78,8 +62,64 @@ Grino supports [closures](https://en.wikipedia.org/wiki/Closure_(computer_progra
(assert= 3 (j))
(assert= 4 (j))
```
---
[gux](https://git.shellbox.fr/bog/gux/src/branch/main/tests/fun.gux) is a statically and strongly typed language with a more modern syntax.
```
# variable declaration
var x : int = 4;
var y := 3.2;
# factorial function
fac := fun (n: int) -> int {
if n == 0 { return 1; }
return n * this(n - 1);
};
# function overloading
fun first(n: int) -> int {
return 27;
}
fun first(n: float) -> int {
return 79;
}
assert first(4) == 27;
assert first(7.3) == 79;
```
---
[muzgen](https://git.shellbox.fr/bog/muzgen) is a programming language for sound design tasks. It allows to manipulate and combinate oscillators in order to craft interesting sounds.
```
# play a sine at 440Hz.
[sine 440]
# combine by adding two signals
[add [sine 220] [sine 220]]
# using one sine to control another
[sine [mul 440 [sine 1]]]
```
---
[roza](https://git.shellbox.fr/bog/roza) is pretty much a clone of wuz with a syntax slightly different.
```
# functions are first class citizens
let a = fun (x as int, y as int) -> int
return x + y
end
# function calls using curly brackets
assert 12 == {a 9 3}
assert 6 == {a {a 1 2} 3}
```
---
[fakir](https://git.shellbox.fr/bog/fakir) has pratically the same syntax and semantic than grino. Fakir adds module importation features using the function ``@``.
@ -113,43 +153,4 @@ d -> a {
---
[muzgen](https://git.shellbox.fr/bog/muzgen) is a programming language for sound design tasks. It allows to manipulate and combinate oscillators in order to craft interesting sounds.
```
# play a sine at 440Hz.
[sine 440]
# combine by adding two signals
[add [sine 220] [sine 220]]
# using one sine to control another
[sine [mul 440 [sine 1]]]
```
---
[gux](https://git.shellbox.fr/bog/gux/src/branch/main/tests/fun.gux) is a statically and strongly typed language with a more modern syntax.
```
# variable declaration
var x : int = 4;
var y := 3.2;
# factorial function
fac := fun (n: int) -> int {
if n == 0 { return 1; }
return n * this(n - 1);
};
# function overloading
fun first(n: int) -> int {
return 27;
}
fun first(n: float) -> int {
return 79;
}
assert first(4) == 27;
assert first(7.3) == 79;
```