114 lines
2.6 KiB
Plaintext
114 lines
2.6 KiB
Plaintext
---------------------------------------------------------------------------
|
|
Składnia
|
|
---------------------------------------------------------------------------
|
|
|
|
Zapis nut (dostępna notacja zachodnia)
|
|
c
|
|
d
|
|
|
|
Ustawianie oktawy
|
|
c 8
|
|
|
|
Ustawianie oktawy i długości
|
|
c 8 (1/4) c w oktawie 8 grane przez 1/4 długości pełnej nuty
|
|
|
|
Ustawianie oktawy i długości, a następnie modyfikacja
|
|
(c 8 fn) 4 zmienia oktawę na 4
|
|
(c 8 fn) 4 qn zmienia oktawę na 4 i długość na 1/4
|
|
|
|
Stworzenie akordu
|
|
c123 == chord[c; c#; d; d#]
|
|
|
|
Arytmetyka
|
|
(aktualnie brak wsparcia dla precedensji operatorów)
|
|
3 * (4 * 12 - 8)
|
|
|
|
Przesuwanie dźwięków o półtony
|
|
c + 1 == c#
|
|
c - 1 == b
|
|
c12 + 1 == d12
|
|
|
|
Wywołanie funkcji
|
|
foo 1 2 3
|
|
|
|
Kilka wywołań obok siebie
|
|
foo 1; bar 2
|
|
|
|
Stworzenie zmiennej
|
|
var variable = 20
|
|
|
|
Blok
|
|
Jako tablica
|
|
[1;2;3]
|
|
|
|
Jako odroczona ewaluacja
|
|
[say 42]
|
|
|
|
Jako funkcja anonimowa jednoparametrowa
|
|
[i | i * i ]
|
|
|
|
Poniższe zapisy są równoważne
|
|
[ say 42 ]
|
|
[| say 42 ]
|
|
|
|
---------------------------------------------------------------------------
|
|
Dostępne stałe
|
|
---------------------------------------------------------------------------
|
|
|
|
fn 1
|
|
dfn 3/2
|
|
hn 1/2
|
|
dhn 3/4
|
|
ddhn 7/8
|
|
qn 1/4
|
|
dqn 3/8
|
|
ddqn 7/16
|
|
en 1/8
|
|
den 3/16
|
|
dden 7/32
|
|
sn 1/16
|
|
dsn 3/32
|
|
tn 1/32
|
|
dtn 3/64
|
|
|
|
---------------------------------------------------------------------------
|
|
Dostępne funkcje
|
|
---------------------------------------------------------------------------
|
|
|
|
flat : ...items : any -> array
|
|
tworzy tablicę z dostarczonych elementów, rozsypując elementy indeksowalne
|
|
przykład:
|
|
flat 1 2 3 tworzy tablicę 1, 2, 3
|
|
flat [1;2] 2 3 tworzy tablicę 1, 2, 2, 3
|
|
flat [[1;2]; [3;4]] 5 6 tworzy tablicę [1;2], [3;4], 5, 6
|
|
|
|
|
|
if : condition: bool, block: block -> (eval block)
|
|
wywołuje block jeśli condition jest:
|
|
dla b: bool jest b == true
|
|
dla n: number jest n != 0
|
|
dla nil jest false
|
|
dla typu music, block, intrinsic, symbol zawsze prawdziwe
|
|
|
|
if : condition: Bool, then: Block, else: Block -> (eval then or eval else)
|
|
jeśli condition jest prawdziwe wg zasad wyżej wywołaj then
|
|
w innym przypadku wywołaj else
|
|
|
|
len : array -> number
|
|
zwraca ilość elementów w tablicy
|
|
Przykład:
|
|
len (flat 5 6 7) == 3
|
|
|
|
len : block -> number
|
|
zwraca ilość elementów (liczbę indeksowalnych pozycji) wewnątrz bloku
|
|
Przykład:
|
|
len [1;2;3] == 3
|
|
len [foo;bar] == 2
|
|
len [foo bar] == 1
|
|
|
|
play : music... -> nil
|
|
odtwarza sekwencyjnie otrzymane wartości muzyczne
|
|
|
|
chord : (collection | music)... -> music
|
|
tworzy akord z przekazanych wartości muzycznych
|