Kezdőoldal » Számítástechnika » Programozás » Betűkből akarok (32-es)...

Sotineolog kérdése:

Betűkből akarok (32-es) számrendszert csinálni, de nem ismerek programnyelveket. Melyiket érdemes megtanulni?

Figyelt kérdés
A szavakat képező betűk számsorokat kepeznének, amelyekkel számtani műveleteket végeznék. (nyelvek és szavak összehasonlítása céljából).

#nyelv #programozás #32-es számrendszer
2017. okt. 29. 22:04
1 2 3 4
 31/31 anonim ***** válasza:

#30

"Ja, most nem ahhoz tartozik? De ha a dinamikus típusozásnál előjön tök ugyanez, akkor odatartozik? Akkor most el kéne dönteni, hogy oda tartozik, vagy sem."


Kevered a szezont a fazonnal. Az, hogy az eredmény ÉRTÉKE nem az, amit akarok, az sehol nem jön a type safety témaköréhez. A type safety addig terjed, hogy az eredmény TÍPUSA az, amit akarok, és semmi más. Az "5"+2 egyébként ponthogy rendben van ilyen tekintetben.


"Pont ezért választottam ezt a példát.

Miért nem lehet bármely string-et int-té alakítani? Mert a string értéktartománya nem feleltethető meg 1:1-ben az int értéktartományának, és ez biztony hatalmas nagy type mismatch, és abszolút nem az a fontos, hogy ami bemegy, az string, vagy int, vagy double vagy akármi más, vagy hogy mi a visszatérési érték. A baj az, hogy ez szintaktikailag ugyan nem type mismatch, szemantikailag viszont történetesen az."

Nem az. Mert biztosan tudhatom, hogy

1. Az atoi nem fog hibát dobni

2. Az atoi egy int típusú értéket fog visszaadni.

Az, hogy ez az érték éppenséggel 0, vagy 576, típe safety szempontból indiferens. Ha meg nagyon érdekel, hogy azért 0, mert a beadott karakterláncban ez a szám van megadva, vagy mert nem tudta konvertálni, arra ott van az alternatív strtol, amivel plusz ellenőrzéseket is tudok erre vonatkozóan végezni.


"Persze, csak minket dinamikus típusozású nyelvekben senki nem kényszerít arra, hogy ide-oda konvertálgassunk meg castoljunk mindent, ami a kezünk ügyébe kerül :D"

Egyrészt, aki nem totál inkompetens, annak nem okoz problémát az, hogy néha castolni kell, meg eleve úgy tervezi meg a programot, hogy ne is kelljen igazából. Másrészt, dinamikus nyelvekben senki nem kényszerít arra, hogy castolgass, viszont arra sem kényszerít senki, hogy typecheckelj mindent. Utóbbit viszont kéne. Sokan nem teszik meg. Aztán az olyanok, akik meg megteszik téphetik a hajukat mikor megkapják az előd kódját, és egy pokolból előmászott szörnyeteg fogadja.


"Egy mysqli_stmt_execute bool-t fog visszaadni, nem mást. Egy iptcparse arrayt, hiba esetén bool-t ad vissza, nem mást. A saját függvényed is mindig olyan típust fog visszaadni, amilyenre megírtad, nem mást. Amit írsz, azzal azt állítod, hogy a dinamikusan típusos programnyelvek nem determinisztikusak..."

Egy: Sok olyan függvény van dinamikus nyelvekben, amik többféle típusú értéket is visszaadhatnak a paraméter ÉRTÉKÉTŐL (nem típusától) függően.


Kettő: Ha a függvények kimenetére nem is feltétlenül jellemző annyira az, hogy többféle típusuk is lehet, a függvények bementi paramétereire mindenképp. Mert azt NEM te fogod meghatározni, hogy a függvénykönyvtárat amit te írsz hogyan fogják meghívni, használni. Az kikerülhetetlen probléma egy dinamikus típusú nyelvben, hogy totál mást kap a függvényed paraméterül, mint amit várna. És vagy megteszed a plusz köröket ennek az ellenőrzésére, vagy bízol benne, hogy komoly baj nem történik belőle.


Zárásul: Érdekes módon nekem sok fejfájást nem okoz az, hogy egy statikus nyelvben nekem típusokkal kell dolgoznom, és nem tudok csak úgy típusokat váltogatni. Az annál inkább okoz fejfájást, hogy biztosítsam egy dinamikus nyelvben, hogy ne legyen unhandled hibajelenség azért, mert valamelyik függvényben valamelyik paraméter nem lett rendesen typecheckelve (és itt azért jegyezzük meg, hogy egy komolyabb programban nem primitív típusokra kell ellenőrizni, hanem n+1 rétegű összetett objektumokra), vagy mert valamelyik függvényről nem tudtam, hogy bizonyos feltételek mellett hót más típusú értéket ad vissza.

2017. nov. 2. 19:56
Hasznos számodra ez a válasz?
1 2 3 4

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!