Newsgroup: it.comp.lang.javascript
Titolo: esiste la duale di sgn (vbscript) in javascript?

salve,
esiste la duale della funzione Sgndi vbscript in javascript
non riesco a trovarla
grazie m,ille 

 non riesco a trovarla
se spieghi cosa fa la sgn...
-- 
I veri polli sono i consumatori, e la loro malattia si chiama ignoranza.

non ne ho idea...
ma non è che ci vuole tanto..
function segno(x) { if(x==0) return 0; if(x>0) return 1; return -1; }

 function segno(x) { if(x==0) return 0; if(x>0) return 1; return -1; }
una function sgn(x) {return x%2} come la vedi?
-- 
"qualcuno è andato per età
 qualcuno perchè già dottore
 e insegue una maturità, si è sposato, fa carriera
 ed è una morte un po' peggiore"
									    F.G.

 una function sgn(x) {return x%2} come la vedi?
Cristiano, solo le 18.04 e hai lavorato tutto il giorno: fai un bel respirone
e rileggi il post :)
-- 
Una volta Chuck Norris ha rapito gli alieni.

 una function sgn(x) {return x%2} come la vedi?
Cristiano, sono le 18.04 e hai lavorato tutto il giorno: fai un bel respirone


 e rileggi il post :)
:-)
a) in effetti 'sto cazzo di libro di GoodKind mi sta facendo fare l'alba
ogni giorno e sono molto provato ... :-)
b) chiedo scusa, veramente scusa ...  (Sabato sera sono andato a vedere il
nuovo spettacolo di Albanese... :-) )
c) che cazzo è la "duale"?
d) non mi viene in mente un modo per evitare quell'if così prolisso, strano
(ma anche stanotte ho fatto l'alba...)
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.


In effetti duale non sarebbe equivalente in molti ambiti a complementare?
Forse lui intendeva doppione invece. 

 (ma anche stanotte ho fatto l'alba...)
Credo che alla fine l' "if" sia la cosa più comprensibile da fare.
Ma se vuoi qualcosa di alternativo:
Number.prototype.sign = function(){return (this>0)|-(this<0)};
Scritto di getto, ma a occhio dovrebbe andare (al limite si tratta di
aggiustare il tiro).
Ovviamente il prototype c'è perché fa più fico. :)
-- 
Chuck Norris ha creato un milione di posti di lavoro. Tutti becchini.

 Ovviamente il prototype c'è perché fa più fico. :)
:-) (copiaincollato infatti nel mio js dei prototype, anche se penso non mi
servirà mai nell'intera esistenza...)


 servirà mai nell'intera esistenza...)
Temo la stessa cosa, ma si dice mai. :)
-- 
Un giorno, mentre partecipava al Grande Fratello VIP, Chuck Norris è stato
nominato. In un batter di ciglia, aveva sterminato tutti i suoi coinquilini.
Nessuno nomina Chuck Norris invano. Nessuno.

 Number.prototype.sign = function(){return (this>0)|-(this<0)};
Scusa... mi spiegheresti una cosa?
Le espressioni "this>0" e "this<0" vengono valutate come booleane, quindi
possono assumere solo i valori true o false, no? E un "or" fra valori
booleani restituisce ancora un booleano, no? Mi chiedo, dunque: dov'è il
/trucco/ che "trasforma" il tutto in numerico? E' quel "-" posto davanti
alla seconda espressione booleana?
-- 
Nando [?]
Apostolo della Prova

 [...] E un "or" fra valori [...]
Pardon, operatore bit a bit, credo...


 E' quel "-" posto davanti alla seconda espressione booleana?
Per avere -1 nel caso in cui il numero sia negativo.
La premessa della funzione era che restituisse 1 per valori positivi, -1 per
valori negativi, e 0 per zero.
-- 
I testicoli di Chuck Norris non producono spermatozoi, producono tanti piccoli
ninja con in mente un solo obiettivo: distruggere.

 Che quello non è un "or".
Sì, ho capito tutto... ovviamente dando un occhio alla reference...
Come al solito ho postato troppo presto: la verità è là fuori (cit.), basta
cercarla :)


 la verità è là fuori (cit.), basta cercarla :)
The Simpsons: 3a serie, 1o episodio :P
-- 
Ro!

 The Simpsons: 3a serie, 1o episodio :P
Ma LOL! Io pensavo (più banalmente) a X-files...
Ma davvero riesci a catalogare tutti 'sti ricordi? E lo spazio per il
divano, le regexp e il progresso dell'upload? :)


 divano, le regexp e il progresso dell'upload? :)
Il mio monolocale è soppalcato :P
-- 
Ro!

 Il mio monolocale è soppalcato :P
Aaaah, ecco come si fa ad espandere la memoria, e io lì a calarmi
quintalate di fosforo ... :-)
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 quintalate di fosforo ... :-)
LOL! :)
Purtroppo ho solo un monolocale e ho dovuto arrangiarmi :P
-- 
Ro!

Non so se è stato scritto (visto che si divaga un pò, sono andato avanti) ma
il segno di un numero si ottiene matematicamente dividendo il numero per il
valore assoluto del numero :) Semplice no! ;)
Unica eccezione è lo zero.
Quindi volendo estendere Math:
Math.sign = function(x) {
    if(x==0)
        return 0;
    else
        return x/Math.abs(x);
};
Bye,
Max

 [cut]
Ecco questo di tutti i modi che ci potevano essere e' l'unico che non va
seguito :( (e per tanto neanche lo posto)
Oltre a impiegarci un "quarto d'ora" ogni volta che viene lanciata, poi
potrebbe dare risultati erronei a seguito del noto problema dei floating
point...
cioe' 0.543 / 0.543 potrebbe dare 0.999999 e credo che possa essere un
problema...

 problema...
Quali problemi di FP?
Max

 Quali problemi di FP?
Il noto problema della rappresenzazione dei numeri in virgola mobile in
binario dove solo quelli "multipli di 2" vengono rappresentati bene e i
conseguenti problemi inerenti anche le operazioni matematiche elementari...


E' breve, non usa funzioni, non c'è bisogno di specificare l'eccezione dello
zero (lo scopo era evitare appunto "if prolissi") e si avvale delle capacità
del linguaggio sulla gestione dei booleani e dei binari.
E più che estendere l'oggetto Math, ho preferito considerare il tutto come
metodo dell'oggetto number, ma son scelte personali.
-- 
Chuck Norris non ha bisogno di una donna per procreare: da un suo brufolo è
nata la stirpe dei draghi.

 conseguenti problemi inerenti anche le operazioni matematiche
elementari...
Bene, in questo caso non si verificano. Semplice.
L'unico codice migliore è quello di Zero. Anch'esso matematicamente
corretto.
Max

 metodo dell'oggetto number, ma son scelte personali.
Ma non sarebbe piů corretto il Math?
Max

 Ma non sarebbe più corretto il Math?
Non credo ci sia una cosa più corretta di un altra, almeno in questo
frangente. C'è una zona d'ombra abbastanza ampia sulla quale poter agire.
Math credo che sia una sorta di vecchio residuo per mantenere l'oggetto Number
il più vicino possibile ad un tipo primitivo, più che ad un oggetto complesso.
Il che può anche aver senso.
In un ottica  OOP, però, operazioni come abs, sign.. dovrebbero essere
responsabilità dell'oggetto stesso, non di un oggetto globale come Math.
Guarda ad esempio la differenza che passa tra String e Number, per intenderci.
Il primo è sicuramente più orientato ad oggetti del secondo; ed i metodi che
non sono d'istanza sono trattati come metodi statici di "classe"; non hanno
usato un oggetto globale differente.
-- 
Quando il saggio indica la luna, lo stolto guarda il dito, mentre Chuck Norris
guarda il suo collo e si appresta a spezzarglielo con un calcio rotante.
Nessuno indica un cazzo di niente a Chuck Norris, sa già lui dove guardare.

 Bene, in questo caso non si verificano. Semplice.
Io non ci metterei la mano sul fuoco!
Infatti:
2 numeri FP, pur avendo la stessa rappresentazione binaria, non sarei cosi'
sicuro che dividendoli tra loro diano sempre 1 (ma cose come ti ho gia'
detto come: 0.9999999876 o 1.000000123)
in piu' c'e' di mezzo una funzione che potenzialmente potrebbe cambiarne la
rappresentazione del secondo...
Quindi io reputo questa funzione pericolosa e inutile essendone gia' state
postate di migliori in precedenza
Ciao

 detto come: 0.9999999876 o 1.000000123)...
Bello parlare a vanvera eh? :D
Max

 Vabbé non hai capito. Io ho detto "matematicamente".
Ah, scusa allora:   it.notcomp.matematica
:-)