Note:
Testo rimosso dalla rev 4 e
Testo aggiunto nella rev5
(perl cb 2.14)
Può capitare di fare calcoli avanzati in ruby, e ruby offre un ampio supporto a numeri di dimensioni arbitrarie, decimali, razionali, complessi, etc… Supponendo che dobbiate manipolare numeri complessi, basta caricare la libreria apposita, inclusa nella libreria standard, ed istanziarli:>> require 'complex' => true >> a=Complex.new 10, 20 => Complex(10, 20) >> a+ 15 => Complex(25, 20) >> 10+a => Complex(20, 20)possiamo usre anche la notazione polare:
>> Complex.polar 100, 45 #raggio, gradi => Complex(52.532198881773, 85.0903524534118)Come vedete è semplicissimo, e grazie alle potenzialità di ruby, anche i metodi già esistenti possono gestire numeri complessi, senza intaccare il funzionamento di base:
>> Math.sqrt 10 => 3.16227766016838 >> require 'complex' => true >> Math.sqrt( Complex.new(1,2)) => Complex(1.27201964951407, 0.786151377757423) >> Math.sqrt 10 => 3.16227766016838
La libreria standard di ruby non ha problemi a lavorare con i complessi e si comporta correttamente, ad esempio YAML è in grado di serializzarli correttamente:
>> require 'complex' => true >> require 'yaml' => true >> Complex(1,2).to_yaml => "--- 1+2i"