Kolik je 1 + – + + + – + 1?
Nálepky:
Autor známé knihovny script.aculo.us Thomas Fuchs na svých stránkách zveřejnil sérii matematických výrazů v JavaScriptu a ptá se: Je to platný výraz?
1 + + 1 1 + - + 1 1 + - + - + 1 1 + - + - + - + 1 1 + - + + + - + 1 1 + / + + + / + 1
V komentářích u článku se dozvíte, zda je výraz platný a jak bude vyhodnocen (a proč). Můžete si tak ověřit své znalosti syntaktických pravidel JavaScriptu.
Zdroj: WTFJS
Upřímnou soustrast těm, co mají na starosti maintaining většího JavaScript projektu… :-)))
Neviem v akom jazyku je projekt, ktory mas na starosti ty, ale som si skoro isty, ze tie vyrazy (mozno okrem toho posledneho) budu fungovat aj v nom. Schvalne si to vyskusaj :)
V c++ a pythonu. V ani jednom to nefunguje.
V Pythonu fungují všechny krom posledního.
Tohle:
int main(void) {
1 + + 1;
1 + – + 1;
1 + – + – + 1;
1 + – + – + – + 1;
1 + – + + + – + 1;
return 0;
}
jde pomoci gcc prelozit v pohode, proc by to jako nemelo jit. Posledni radek ne. Myslim, ze tvoje sebevedome „v ani jednom to nefunguje“ je spis nabubrelym projevem tve neznalosti.
vyse zminene vyrazy nemaji podle me zadne vyuziti, nekdo se zase hodne nudil :/
Výše uvedené výrazy mají velmi zásadní využití: procvičíte si na nich syntaktická pravidla pro vyhodnocování výrazů (asociativitu operátorů a jejich prioritu) a nebudete se pak v praxi divit, proč vám výraz nefunguje tak jak jste si mysleli, že by fungovat měl. Pokud jste machr, tak u každého víte, jaký bude výsledek a proč takový bude.
prijde mi, ze krome posledniho vyrazu by nemel mit problem nikdo se vzdelanim zakladni skoly
„nebudete se pak v praxi divit“
V praxi nikdo příliš složité výrazy nepoužívá, a když si není jistý, tak tam narve závorky.
Blbost, kdo si není jistý chováním operátorů, použije závorky. Kdo si tím je jistý, ale chce psát čitelný kód, použije závorky. Kdo si je jistý a nechce psát čitelný kód, měl by být pověšen za uši do průvanu. A kdo používá unární operátory uvedeným způsobem, měl by (vise za uši v průvanu) do konce života psát jen v Perlu, protože v něm už s čitelností větší škodu nenadělá…
Až na ten Perl, v němž jde také psát poměrně čitelný kód, souhlas. Nikdo rozumný takovou prasárnu s více operátory vedle sebe bez závorek nenapíše. Ale jako hříčka dobré.
write-host $(1 + + 1) # ⇒ 2
write-host $(1 + – + 1 ) # ⇒ 0
write-host $(1 + – + – + 1 )# ⇒ 2
write-host $(1 + – + – + – + 1 )# ⇒ 0
write-host $(1 + – + + + – + 1 )# ⇒ 2
# write-host $(1 + / + + + / + 1 )# ⇒ 1/ + + + /1