Node.js a multiplexed IO obecně

Re:Node.js a multiplexed IO obecně
« Odpověď #135 kdy: 02. 05. 2017, 12:22:56 »
Možná by se situace vyjasnila, kdyby se místo názvu "ekvivalence" operátoru === zde v diskusi používal název "identita".
To by situaci mohlo ještě zhoršit, protože pojem "identita" se obvykle používá pro funkci (x) -> x. Takže kdyz už, tak "testování identity".

Ale jinak jsi dobře trefil hřebíček, páč programovací jazyky, jejichž tvůrci neberou drogy, mají dva operátory - jeden testuje shodnost hodnot a druhý případně identitu. Tak to nejspíš v JS mysleli, akorát to totálně zprasili.

Ten první operátor by právě vracel
Kód: [Vybrat]
new Bool(true) == new Bool(true) -> true


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Node.js a multiplexed IO obecně
« Odpověď #136 kdy: 02. 05. 2017, 12:31:04 »
Možná by se situace vyjasnila, kdyby se místo názvu "ekvivalence" operátoru === zde v diskusi používal název "identita".
To by situaci mohlo ještě zhoršit, protože pojem "identita" se obvykle používá pro funkci (x) -> x. Takže kdyz už, tak "testování identity".

Ale jinak jsi dobře trefil hřebíček, páč programovací jazyky, jejichž tvůrci neberou drogy, mají dva operátory - jeden testuje shodnost hodnot a druhý případně identitu. Tak to nejspíš v JS mysleli, akorát to totálně zprasili.

Ten první operátor by právě vracel
Kód: [Vybrat]
new Bool(true) == new Bool(true) -> true
Radši nezacházej moc daleko do identit, nebo na tebe vytáhnu Theseovu loď   ;)

SB

Re:Node.js a multiplexed IO obecně
« Odpověď #137 kdy: 02. 05. 2017, 12:52:15 »
Protokoly a interfaces z podstaty neobsahují implementaci, pravděpodobně máte na mysli "interfaces" s implementací, což jsou vlastně ojebané traits/mixins. O tom tu už řeč šla, to není třeba znovu protřepávat.
Ne, mám namysli protokoly z Elixiru a interfjsy z Go. Skládají se z definice a implementace. Že definice obsahuje implementaci jsem netvrdil.

Pak jsou obdobou mixins nebo traits. Ale to už jsem psal.

SB

Re:Node.js a multiplexed IO obecně
« Odpověď #138 kdy: 02. 05. 2017, 13:02:53 »
...Ale jinak jsi dobře trefil hřebíček, páč programovací jazyky, jejichž tvůrci neberou drogy, mají dva operátory - jeden testuje shodnost hodnot a druhý případně identitu. Tak to nejspíš v JS mysleli, akorát to totálně zprasili.

Jinak jsem to ještě neviděl, např. Smalltalk to má taky tak (= a ==), kdy na "test identity"  je kladen důraz pro jeho využití s jedináčky a test podobnosti je překrytelný. To je ale logické.

Ten první operátor by právě vracel
Kód: [Vybrat]
new Bool(true) == new Bool(true) -> true

V Nodejs nevrací. Ale už jsem to omrdal:

> !new Boolean(true) == !new Boolean(true)
true

Jako by vývojáři neměli dost jiné práce než hlídat jazyk...

čumil

Re:Node.js a multiplexed IO obecně
« Odpověď #139 kdy: 02. 05. 2017, 13:16:28 »
...Ale jinak jsi dobře trefil hřebíček, páč programovací jazyky, jejichž tvůrci neberou drogy, mají dva operátory - jeden testuje shodnost hodnot a druhý případně identitu. Tak to nejspíš v JS mysleli, akorát to totálně zprasili.

Jinak jsem to ještě neviděl, např. Smalltalk to má taky tak (= a ==), kdy na "test identity"  je kladen důraz pro jeho využití s jedináčky a test podobnosti je překrytelný. To je ale logické.

Ten první operátor by právě vracel
Kód: [Vybrat]
new Bool(true) == new Bool(true) -> true

V Nodejs nevrací. Ale už jsem to omrdal:

> !new Boolean(true) == !new Boolean(true)
true

Jako by vývojáři neměli dost jiné práce než hlídat jazyk...
Tady je někdo kreten.
Jazyk to nebude.

Víš, je rozdíl mezi false a new Boolean(false).
To první je unboxed primitive value a to druhé je boxed primtive value.
To boxed znamená že je to objekt s vlastním prototypem.
Což znamená že == a === porovnává reference nikoli primitivní hodnoty.
Když na boxed boolean aplikuješ negaci, vyjde ti vždycky false protože negace objektu je vždycky false (protože každý objekt mimo null je přetypovatelný na true).

Kód: [Vybrat]
!new Boolean(true) === !new Boolean(false)ti vyjde jako true.

A opět, neni to divnost jazyka, je to jenom kompletní ignorace se ho alespoň v mezích naučit.
TEČKA.


Re:Node.js a multiplexed IO obecně
« Odpověď #140 kdy: 02. 05. 2017, 13:34:24 »
A opět, neni to divnost jazyka, je to jenom kompletní ignorace se ho alespoň v mezích naučit.
Pointa je v tom, že ne každý má čas a chuť se učit krávoviny, které nedávají žádný smysl.

Re:Node.js a multiplexed IO obecně
« Odpověď #141 kdy: 02. 05. 2017, 13:40:44 »
Radši nezacházej moc daleko do identit, nebo na tebe vytáhnu Theseovu loď   ;)
Klidně, to mi nedělá větší problémy. Víc by mě znechutilo, kdybys mi chtěl začít povídat o substanci a akcidentech ;)

Re:Node.js a multiplexed IO obecně
« Odpověď #142 kdy: 02. 05. 2017, 14:01:47 »
...Ale jinak jsi dobře trefil hřebíček, páč programovací jazyky, jejichž tvůrci neberou drogy, mají dva operátory - jeden testuje shodnost hodnot a druhý případně identitu. Tak to nejspíš v JS mysleli, akorát to totálně zprasili.

Jinak jsem to ještě neviděl, např. Smalltalk to má taky tak (= a ==), kdy na "test identity"  je kladen důraz pro jeho využití s jedináčky a test podobnosti je překrytelný. To je ale logické.

Ten první operátor by právě vracel
Kód: [Vybrat]
new Bool(true) == new Bool(true) -> true

V Nodejs nevrací. Ale už jsem to omrdal:

> !new Boolean(true) == !new Boolean(true)
true

Jako by vývojáři neměli dost jiné práce než hlídat jazyk...
Tady je někdo kreten.
Jazyk to nebude.

Víš, je rozdíl mezi false a new Boolean(false).
To první je unboxed primitive value a to druhé je boxed primtive value.
To boxed znamená že je to objekt s vlastním prototypem.
Což znamená že == a === porovnává reference nikoli primitivní hodnoty.
Když na boxed boolean aplikuješ negaci, vyjde ti vždycky false protože negace objektu je vždycky false (protože každý objekt mimo null je přetypovatelný na true).

Kód: [Vybrat]
!new Boolean(true) === !new Boolean(false)ti vyjde jako true.

A opět, neni to divnost jazyka, je to jenom kompletní ignorace se ho alespoň v mezích naučit.
TEČKA.

+1

A opět, neni to divnost jazyka, je to jenom kompletní ignorace se ho alespoň v mezích naučit.
Pointa je v tom, že ne každý má čas a chuť se učit krávoviny, které nedávají žádný smysl.

Nedávají (opět) smysl kvůli vaší neznalosti. ;) Fakt nechápu, že se někdo veřejně chlubí tím, že je blb. Protože pokud kritizuje něco, o čem očividně nemá ani páru, tak jinak nazvat nejde.

Re:Node.js a multiplexed IO obecně
« Odpověď #143 kdy: 02. 05. 2017, 14:10:07 »
Nedávají (opět) smysl kvůli vaší neznalosti. ;)
Jasný.

Fakt nechápu, že se někdo veřejně chlubí tím, že je blb. Protože pokud kritizuje něco, o čem očividně nemá ani páru, tak jinak nazvat nejde.
Jistě. Kdo nechápe, že
Citace
(x == x) !=  (!x == !x)
je nade vší pochybnost blb.

Inkvizitor

Re:Node.js a multiplexed IO obecně
« Odpověď #144 kdy: 02. 05. 2017, 14:18:18 »
Citace: Mirek Prýmek link=topic=15324.msg210554#msg210554 Jistě. Kdo nechápe, že
Citace
(x == x) !=  (!x == !x)
je nade vší pochybnost blb.

Nejlepsi je, ze tyhle prasarny (a ano, vim, proc to tak asi je - unboxing boolu operatorem "not"), ale je to jasna prasarna) se budou ted decka ucit na skolach. Takze uz jim to bude pripadat normalni.

Re:Node.js a multiplexed IO obecně
« Odpověď #145 kdy: 02. 05. 2017, 14:20:01 »
Nejlepsi je, ze tyhle prasarny (a ano, vim, proc to tak asi je - unboxing boolu operatorem "not"), ale je to jasna prasarna) se budou ted decka ucit na skolach. Takze uz jim to bude pripadat normalni.
Přesně. Jednu generaci programátorů zdegenerovalo C++, tak je na čase druhou zdegenerovat JavaScriptem.

gll

Re:Node.js a multiplexed IO obecně
« Odpověď #146 kdy: 02. 05. 2017, 14:23:57 »
Citace
(x == x) !=  (!x == !x)
je nade vší pochybnost blb.

pro kterou hodnotu tohle platí?

Re:Node.js a multiplexed IO obecně
« Odpověď #147 kdy: 02. 05. 2017, 14:26:07 »
pro kterou hodnotu tohle platí?
Pokud to nevíš, neznáš JavaScript a tímpádem jsi blb!

čumil

Re:Node.js a multiplexed IO obecně
« Odpověď #148 kdy: 02. 05. 2017, 14:28:13 »
Citace: Mirek Prýmek link=topic=15324.msg210554#msg210554 Jistě. Kdo nechápe, že
Citace
(x == x) !=  (!x == !x)
je nade vší pochybnost blb.

Nejlepsi je, ze tyhle prasarny (a ano, vim, proc to tak asi je - unboxing boolu operatorem "not"), ale je to jasna prasarna) se budou ted decka ucit na skolach. Takze uz jim to bude pripadat normalni.
Not nic neunboxuje omg.
Boxed boolean je objekt dozadeke uz.
Jak mezi idiotama...

gll

Re:Node.js a multiplexed IO obecně
« Odpověď #149 kdy: 02. 05. 2017, 14:29:52 »
pro kterou hodnotu tohle platí?
Pokud to nevíš, neznáš JavaScript a tímpádem jsi blb!

Podle me jsi to nepochopil ty, == porovnává reference

proto

Kód: [Vybrat]
{} == {} // false

ale

Kód: [Vybrat]
var x = {};
x == x // true