womenCode

Sok munkában megfáradt elmémben egy offtopik téma körvonalazódott: elkezdtem agyalni egy női programnyelven. Tőszavakban az alábbiak szerint épülne fel...

Kódblokk jelző parancsok

that - so:
Ez szokásos, közrefog egy halom utasítást.

baby - ohyes - thanks:
Az egyes kódblokkokat a baby...ohyes, vagy a baby...thanks, és/vagy az ohyes...thanks közé ékelhetjük. A blokk-megoldás különlegessége, hogy az ohyes...thanks ág akkora eséllyel fut le, amekkora a baby...ohyes blokk közötti kódsorok aránya a teljes kód soraihoz képest.

Feltételes elágaztatás:

if - else - justbecause:
Az if - else nyilván mindenki számára világos. A justbecause ág véletlenszerűen fut le, néha az if, néha az else ág helyett.

Ciklusok:

Minden ciklusból a shopping paranccsal lehet kilépni, illetve a ciklusban a pleasehoney paranccsal lehet egy iterációt léptetni. A shopping minden esetben megállítja a ciklust, míg a pleasehoney 60% eséllyel hajtódik végre.

Determinisztikus ciklusok:

spend - more - justbecause:
Számláló ciklus, szintaktikája az alábbi: spend money(alapérték) why(feltétel) but(értéknövelés) ...kód... more; Fontos tudni, hogy a why()-ban megadott kilépési feltétel néha figyelmen kívül marad (20% eséllyel), és ilyenkor ha van justbecause ág, akkor az fut le, ha nincs, a ciklus megy tovább.

makeup - more - justbecause:
Tömb elemeit bejáró ciklus. Szintaktikája makeup kit(tömb) tool(kulcsváltozó) as(értékváltozó) ...kód... more; Előfordulhat, hogy a ciklus futása idő előtt félbe próbál maradni, ilyenkor ha van justbecause ág, az lefut, ha nincs, akkor kilép a ciklusból.

Nem determinisztikus ciklusok:

speak - more:
Előltesztelő ciklus. Szintaktikája: speak while(feltétel) ...kód... more; A while()-ban megadott feltétel ellenőrzése 50% eséllyel nem fog megtörténni. A while() kikötés el is hagyható, ebben az esetben 5% esély van arra, hogy a ciklus magától abbamarad. Ha van while() kikötés, ha nincs, a ciklus legalább egy iterációt végre fog hajtani.

gossip - tired if() ornot() maybe() :
Hátultesztelő ciklus. Szintaktikája gossip ...kód... tired if(feltétel) ornot(feltétel) maybe(feltétel); A tired mindhárom kikötése megadható. Ha több kikötés is van, akkor véletlenszerűen kerül ellenőrzésre közülük egy darab. Az if() kikötés teljesülése esetén a ciklus befejeződik, az ornot() kikötés az if() teljesülése után kerül értelmezésre, ha a feltétel teljesül, a ciklus folytatódik. A maybe() kikötésben megadott feltétel teljesülése esetén pontosan 1 iterációra visszalép a ciklusba ha az befejeződne, majd minden egyéb feltétel figyelmenkívül hagyásával az iteráció végén befejezi a ciklust.

Logikai műveletek:

AND: logikai és.
OR: logikai vagy.
BUT: logikai nem.
MAYBE: a "kif.1 MAYBE kif2" 50% eséllyel adja vissza vagy az egyik vagy a másik kifejezést.

Kivétel kezelés:

Kivétel létrehozható a new dress(szöveg) paranccsal. A létrejövő kivételeket a giveme ágban lehet lekezelni. A letmesee ágban megadott kódban ha kivétel keletkezik, akkor véltelenszerűen vagy a rude, vagy a justbecause ág fut le. Kivételt kezelni csak a rude ágban lehet. A szintaktika nagyjából az alábbi tehát:

letmesee that

...kód...

so rude that

giveme "szöveg" baby
...kód...
thanks
so justbecause that
...kód...
so

Függvények és eljárások létrehozása:

ithinkthat(paraméterek):
Függvény adható meg vele. A függvény 3% eséllyel nem fut le, 5% eséllyel egy teljesen véletlenszerű adattal tér vissza.

allright(paraméterek):
Eljárás adható meg vele. Az eljárás 3% eséllyel nem fut le. Ha az eljárás baby - ohyes - thanks blokkot használ, az előbbi állítás nem érvényes.

Fő vezérlés jelző blokk:

nowhere - butmaybe - otherwise - justbecause - okok:
Legalább két blokkot kötelező megadni! Az egyes blokkok közül az egyikre kerül a vezérlés - véletlenszerűen.

Várom az észrevételeket és a javaslatokat! :)