1
Vývoj / Re:Lua a cyklus
« kdy: 24. 02. 2023, 18:31:36 »jenže lua nevyhazuje chybu "out of rage" při přístupu k neexistujícímu prvku v poli, vrací pouze nil, když prvek neexistuje.
OK, to se asi moc dobře řešit nedá. Dík za vysvětlení.
Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.
jenže lua nevyhazuje chybu "out of rage" při přístupu k neexistujícímu prvku v poli, vrací pouze nil, když prvek neexistuje.
Inku, co ti je na hlášceKód: [Vybrat]attempt to index a nil value (field '?')
nejasného?
Očekáváš snad že ti to napíše že se indexuje od 1?
Indu je hrozne moc, takze jsou dobri i spatni. Problem je, ze programovani je pro ne cesta nahoru, takze programovat chce kazdy. Nezavisle na tom, co umi nebo neumi. Mam pocit, ze v CR/EU/vetsine sveta jde clovek programovat, protoze se o to zajima, bavi ho to. Spousta indu jsou programatori z Kolbenky. To se projevuje tak, ze prijde clovek, ktery tvrdi, ze 8 let programoval REST microservices, ale netusi, co znamenaji zkratky HTTP GET. On totiz sice delal 8 let microservices, ale bylo to tak ze mu nekdo rekl: tady je interface X a interface Y. Implementuj interface X tak, ze zavola interface Y. A vubec jim nevadi, ze delaji furt jedno a to samy dokola a vubec tomu nerozumi. Jsou presne takovi programatori, o jakych se mluvilo pri rekvalifikaci horniku z Ostravy. Proste postavte ho ve Skodovce k pasu a on bude zcela spokojene 8hodin denne nandavat prave predni kolo na auto.
Jak to píšu. Pozná to na základě znalosti kódu. Koukne a vidí, že ta kolekce se používá tady a tady a tady a tady, způsobem tak a tak a tak. Tudíž nejoptimálnější by bylo mít tu strukturu takto.No, a moje pointa mého původní příspěvku je, že nevím, proč bych to měl drátovat do typů. Prostě si vytvořím kolekci [Foo] a nechám kompilátor odvodit podle užití, jak moc v kódu používám přístup k počtu prvků (-> přidá count do interní struktury pro Foo), jak často přidávám/odebírám prvky uvnitř seznamu (-> zvolí zda použít vektor, nebo spojový seznam). To mě, jako uživatele typů nezajímá, a kompilátor to dokáže rozhodnout lépe.
A jak to pozná?
A jak z toho (obecně) pozná, jaká je frekvence kterých operací? To přece musí záviset mimo jiné na vstupních datech.
To píšu výše, ne?
Jak to píšu. Pozná to na základě znalosti kódu. Koukne a vidí, že ta kolekce se používá tady a tady a tady a tady, způsobem tak a tak a tak. Tudíž nejoptimálnější by bylo mít tu strukturu takto.No, a moje pointa mého původní příspěvku je, že nevím, proč bych to měl drátovat do typů. Prostě si vytvořím kolekci [Foo] a nechám kompilátor odvodit podle užití, jak moc v kódu používám přístup k počtu prvků (-> přidá count do interní struktury pro Foo), jak často přidávám/odebírám prvky uvnitř seznamu (-> zvolí zda použít vektor, nebo spojový seznam). To mě, jako uživatele typů nezajímá, a kompilátor to dokáže rozhodnout lépe.
A jak to pozná?
No, a moje pointa mého původní příspěvku je, že nevím, proč bych to měl drátovat do typů. Prostě si vytvořím kolekci [Foo] a nechám kompilátor odvodit podle užití, jak moc v kódu používám přístup k počtu prvků (-> přidá count do interní struktury pro Foo), jak často přidávám/odebírám prvky uvnitř seznamu (-> zvolí zda použít vektor, nebo spojový seznam). To mě, jako uživatele typů nezajímá, a kompilátor to dokáže rozhodnout lépe.
Spíš je tam nadbytečný ten spojový seznam, většinou chceš jenom vektor. A když ho spojíš s vektorem, výhody listu zabiješ úplně.To se takhle nedá říct. Pokud tu kolekci používáš tak, že tam často přidáváš a odebíráš prvky na různá místa, bude spojový seznam lepší volba.
Jsem myslel, že dneska se to dělá tak, že si vytvořím třídu ve který bude ten list i jeho délka jako vlastnost. V okamžiku převodu na vektor budu délku pak vědět. No vlastně v tý třídě může být rovnou i ten vektor...
Nebo ne?
deka listu ve tride listu muze byt, ale michat tam i vektor je nadbytecne.
Ja to chápem tak, že pamäť pre vektor sa alokuje ako počet dát krát veľkosť dát, takže musia byť dáta za sebou v pamäti.
Nekonečná kolekcia je niečo ako zreťazený zoznam a má porozhadzované prvky v pamäti a ešte prvý prvok musí mať smerník na samotné dáta a smerník na druhý prvok, druhý prvok má smerník na svoje dáta a smerník na ďalší prvok, atď. Posledný prvok má smerník na ďalší prvok nastavený na Null. Takže sa dajú ľahko pridať ďalšie dáta, stačí správne ponastavovať smerníky na ďalší prvok v predchádzajúcom a pridávanom prvku.
Aby nedošlo k omylu, já to zadání chápu. Jen jsem ho zjednodušil.
Obecně v jazycích se předpokládají kolekce jako nekonečné. Tudíž proč někde uchovávat délku kolekce? Třeba proto, že mám funkce, které dokáží zpracovat jen konkrétní délku - což je můj příspěvek/dotaz. A nebo proto, že mám různé specializované funkce pro různé délky. Tak pak nevím proč to rvát do typu, když se můžu zeptat v nějakém switchi.
K čemu je zajímavé, že je ta délka součástí typu? Jaké to má praktické použití?
Zdá se mi to nebo si tu Idris pokládá zdánlivě triviální otázky na které si odborně odpovídá pod jiným účtem
viz minule https://forum.root.cz/index.php?topic=27054.0
Jirsák +1.
Já bych to popsal tak, že většinové IT pomalu opouští rigidní matematické procesy, ve kterých se zrodilo, a přesouvá se do měkčích procesů známých třeba z biologie. Místo zdola nahoru se jde shora dolů. Je to lepší, nebo horší? Asi záleží případ od případu, ale určitě to dovoluje mít složitější celky, které z povahy věci prostě musí být tolerantní k částečnému selhání něčeho uvnitř.
Tenhle přístup mne, co by inženýra dost děsí. Trochu mi to zavání rezignací. Nevíme jestli je to evoluce nebo rakovina. Prostě to neumíme nadesignovat, uřídit, tak to necháme jak se to vyvrbí. Evoluce funguje, ale v řádech miliónů let se spoustou slepých uliček a masových vymírání. Jsem stavební inženýr, trochu něco tuším o strojařině, a tam jen idea systémů, které nejsou 100% deterministické je nepřijatelná fantasmagorie.
Jsem 100% pro fault tolerant systémy, nicméně ty systémy stále musí být deterministické. Jinak se inženýrská práce mění v alchymii.
Pohovory znám spíš z té opačné strany a můžu potvrdit, že nekoušeme a uchazeče nebijeme. Čistě se obleč, buď v pohodě, zajímej se o firmu, kterou chceš oslovit a ber to jako příležitost.
mas nejakou pikosku z nataceni?