From ae5a9294ebc3e4462aa73ff9c6361cf65342d855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=85tkowski?= Date: Mon, 19 Sep 2022 21:13:58 +0200 Subject: [PATCH] Operators reference --- doc/operators.md | 123 ++++++++++++++++++++++++++++++++++ scripts/.release.swp | Bin 12288 -> 0 bytes src/.builtin_operators.cc.swp | Bin 0 -> 16384 bytes 3 files changed, 123 insertions(+) create mode 100644 doc/operators.md delete mode 100644 scripts/.release.swp create mode 100644 src/.builtin_operators.cc.swp diff --git a/doc/operators.md b/doc/operators.md new file mode 100644 index 0000000..7fe7926 --- /dev/null +++ b/doc/operators.md @@ -0,0 +1,123 @@ +# Lista wbudowanych operatorów języka Musique + +## Operatory arytmetyczne + +- `+` – operator: + - dodawania (liczby całkowite i ułamki): +``` +> 2 + 3 +5 +> (1/3) + (1/4) +7/12 +``` + - inkrementacji zmiennej (liczby lub akordu, w tym w szczególności pojedynczeń nuty): +``` +> c + 1 +c# +> c4 + 2 +chord[d; f#] +``` + +- `-` – operator odejmowania/dekrementacji – analogicznie do operatora `+`; + +- `*` – operator: + - mnożenia (liczby całkowite i ułamki): +``` +> 2 * 5 +10 +> (1/3) * (1/4) +1/12 +``` + - powtarzania – zwraca określoną liczbę powtórzeń danego dźwięku: +> a * 4 +[a; a; a; a] +> a3 * 4 +[chord[a; c]; chord[a; c]; chord[a; c]; chord[a; c]] +``` + +- `/` – operator dzielenia: +``` +> 4 / 2 +2 +> 5 / 7 +5/7 +> (2/3) / (3/5) +10/9 +``` +- `%` – operator działania modulo (wynikiem jest reszta z dzielenia) – *nie działa dla ułamków*: +``` +> 3 % 3 +0 +> 6 % 5 +1 +``` +- `**` – operator potęgowania – *wykładnikiem nie może być ułamek*: +``` +> 2 ** 8 +256 +> (2/3) ** 3 +8/27 +``` + +## Operatory porównawcze + +- `!=` – operator "nie równa się": +``` +> 2 != 3 +true +> a != a +false +``` +- `<` – operator "mniejsze niż": +``` +> 2 < 3 +true +> a < a +false +``` +- `<=` – operator "mniejsze lub równe": +``` +> 2 <= 3 +true +> a <= a +true +> 3 <= 2 +false +``` +- `==` – operator "równe": +``` +> 2 == 3 +false +> a == a +true +``` +- `>` – operator "większe niż": +``` +> 2 > 3 +false +> a > a +true +``` +- `>=` – operator "większe lub równe": +``` +> 2 >= 3 +false +> a >= a +true +> 3 >= 2 +true +``` +- `.` – operator indeksu (zwraca wskazany element, liczone od 0): +``` +> A:=[1; 3; 5] +> A . 1 +3 +``` + - indeksu +- `&` – operator łączenia: +``` +> c & a +chord[c; a] +> [1;3;5] & [2;4;6] +[1; 3; 5; 2; 4; 6] +``` diff --git a/scripts/.release.swp b/scripts/.release.swp deleted file mode 100644 index 82cb6120d8634231ec59f25f5aadf2885acd1afd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2yKdA#6ow~sh^ycQPRy=00lZFv5D2ssT#85u6agdz2s!pRJFM;TdhFeBuPCUf zX}CQCG(ZVRl$0Rx1Y911-&s3xLKJGyvGmE=nUgbTzZn%S9)7H1{H)06cYYpYh(p3%uI8jVv?4T=r*(AUG5Y(u{GoFI?AOzGIPBV>%o z%2XE06LZRBE@86g-Bfh*VPe(IT8eHKg&P;p1DOt#92WU&3tWgk zydEkUEBR-3!nJON)f_7e2(KGypQer-JzA?m#i%$8+omgw^vN>LqKdDrc6C?X-Afi# z4c_H{(5cO{csLs=$z?Z6LTRWLRE-IQ%*~!TcYfhqZMGaKCQ(6EKrLY1=F~zCuP%0& zLgmTWNOEJp*rt^hb+_0j>|mh8_Q>tYdU~M(8mFsd2lY|9ev-1TjL|>e^HoZAvR1|@ z&&H!${<1}kZ ZR3Zach3NSmcXE>!Tja=iK#MN6?KgmzWZ(b* diff --git a/src/.builtin_operators.cc.swp b/src/.builtin_operators.cc.swp new file mode 100644 index 0000000000000000000000000000000000000000..32720bdb00277a65e5a1edf31fcc95592e03ea7b GIT binary patch literal 16384 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