- Összeadás: +Példa: 3 5 + eredménye 8.
- Kivonás: -Példa: 10 4 - eredménye 6.
- Szorzás: *Példa: 2 7 * eredménye 14.
- Osztás: /Példa: 15 3 / eredménye 5.
- Függvény definiálása:Példa: @triple:1|3*;Ez a függvény a bemenetet megszorozza 3-mal.
- Változó használata:Példa: @add_and_halve:1:rhs|←rhs +2/;Ez a függvény a bemenetet hozzáad egy másik számhoz, majd elosztja 2-vel.
Logikai és feltételes műveletek
- If-else szerkezet:Példa: [feltétel] [igaz ág] | [hamis ág]Például: [^1] 2 | 3 eredménye 2, mert a feltétel igaz.
- While ciklus:Példa: {feltétel} [ciklus törzs]Például: {n|n 0>} [n 1- n] csökkenti n-t, amíg 0 fölött van.
Lista létrehozása: [1,2,3]
Lista elemeinek összeadása: [1,2,3]∑ eredménye 6.
- Feltételes végrehajtás: [feltétel] [utasítás]Példa: [^1] 2 eredménye 2.
A Vyxal parancsai és műveletei gyorsan tanulhatók, és tömör megoldásokat nyújtanak matematikai, logikai és adatfeldolgozási feladatokra.
Nézzünk egy példát
Írassuk ki 2-100-ig a prímszámokat
Magyarázat lépésről lépésre:
Részletes lebontás a láncnak:
Ṁ - map (alkalmazza a belső kifejezést minden elemen)
¬ - nem (logikai tagadás)
∧ - és (logikai és)
× - szorzat
∑ - összeg
¬∧ - nincs osztó (a teljes lánc eredete)
Tesztelt kimenet: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Vyxal utasitások és parancsok magyarázata
A Vyxal egy funkcionális, többparadigmás programozási nyelv, amelyet elsősorban a golf (kódminimálás) céljaira fejlesztettek ki, és számos beépített utasítással rendelkezik, amelyek egyszerűsítik a programozást. Az utasítások és parancsok többsége egy- vagy kétbetűs, és minden egyes karakter meghatározott műveletet hajt végre, például matematikai műveleteket, listakezelést vagy karakterkódolást.
+ – Összeadás (két szám vagy lista összeadása)
- – Kivonás
* – Szorzás
/ – Osztás
: – Duplikálja a legfelső elemet a veremben
@ – Eltárolja az aktuális elemet változóba
? – Beolvas egy bemenetet
# – Komment (nem hajtódik végre)
" – Karakterlánc indítása
' – Egy karakter indítása
ƛ – Lambda kifejezés (függvénydefiníció)
ø – Speciális karakterekkel kezdődő parancsok (pl. øM – matematikai függvények)
Þ – További speciális parancsok (pl. Þf – listákat feldolgozó függvények)
∆ – Matematikai konstansok és függvények (pl. ∆e – e szám, ∆p – π)
Nézzünk egy Kő-papír-olló játékot Vyxal nyelven;
" Kő Papír Olló "s₹
" Kő-Papír-Olló játék!
Válaszd ki a figurádat: 0 - Kő, 1 - Papír, 2 - Olló "P
"Választásod: "P
⌈?i
¬2∧¬*«"Csak
0, 1 vagy 2 közül választhatsz!"P
"Te: "P∑
" Számítógép: "P∑
=«"Döntetlen!"P
0 2=∨2
1=*∨1
0=*«"Te nyertél!"P
"A számítógép nyert!"P
Magyarázat;
" Kő Papír Olló "s₹
- Felosztja a karakterláncot a három opciós tömbre
Először P kiírja a játék
bevezetőjét
⌈?i
- Felhasználói bemenetet egész számként kéri le
¬2∧¬*« - Ellenőrzi, hogy a
bemenet érvénytelen-e (nem 0,1,2), hibát ír ki, ha igen
∑ - A választási szöveget
index alapján kéri le a tömbből
3xr0 - Véletlenszerű
számítógépi választást generál (0-2)
A ∨ és * karakterekkel
ellátott logikai lánc kompakt módon kezeli az összes nyerési feltételt
fájl
neve: "K⟇
"i/o: "K⟇
DuplD
=i
|
„
(⟇
'‛vagy: '
K
¬
‡
‡
Þc
Magyarázat a Vyxal kódhoz:
„fájl neve: "K⟇ - szöveg kiírása + input
DuplD - bemenet duplikálása (mindkét ág használja)
=i| - feltételes ág: ha 'i', akkor ír
„(vagy: )K¬ - input ciklus üres sorig (¬ break)
‡Þc - sorokhoz sorvég hozzáadása + fájlba írás
Olvasás ág: ⟇‡Þ₌ - sorok olvasása, utolsó kar. eltávolítása, kiírás
Lássunk egy vyxal programot ami levezeti a
másodfokú egyeletet megoldó képletig
A másodfokú egyenlet megoldóképletének levezetése Vyxalban vagy
bármilyen programozási nyelven az alapvetően matematikai lépések sorozatát
követi, amelyeket az egyenlet általános alakjából (ax² + bx + c = 0) indulva,
teljes négyzetté alakítással lehet végrehajtani.
Lépések a megoldóképlet levezetéséhez
· Az
egyenletet nullára rendezzük: ax² + bx + c = 0, ahol a ≠ 0.
· Kiemeljük
az a-t: a(x² + (b/a)x + c/a) = 0.
· Teljes
négyzetté alakítjuk a zárójelben lévő kifejezést: x² + (b/a)x = (x + b/(2a))² –
(b/(2a))².
· Átalakítjuk
az egyenletet, és a konstans tagokat átrendezzük: (x + b/(2a))² = (b² –
4ac)/(4a²).
· Négyzetgyököt
vonunk: x + b/(2a) = ±√(b² – 4ac)/(2a).
· Kifejezzük
x-et: x = (–b ± √(b² – 4ac))/(2a).
Vyxalban a megoldóképlet alkalmazására például így nézhet ki a
kód:
: 2* : * 4* - √ : + 2* / : - 2* /
Ez a kód (részletesebben magyarázva):
· Beolvassa
az a, b, c értékeket.
· Kiszámolja
a diszkriminánst: b² – 4ac.
· Négyzetgyököt
von belőle.
· Kiszámolja
a két gyököt a képlet alapján.
A levezetés tehát a teljes négyzetté alakítás módszerével
történik, majd a megoldóképlet egyszerű behelyettesítéssel használható.
Nincsenek megjegyzések:
Megjegyzés küldése