Există o limbă în care 2 + 3 * 5 nu este 17?

Ei bine, aceasta este întrebarea, există vreun limbaj de programare în care 2 + 3 * 5 nu este 17? Am găsit această întrebare într-un test vechi al facultății mele și mi-a atras atenția. Nu este mare lucru, dar mă îndoiesc. Un plus ar fi de ce nu?

0
Odată am scris un program (primul semestru) care a calculat expresii, dar din moment ce nu știam cum să scriu un stack, tocmai a calculat totul de la stânga la dreapta. Acolo! Limba acestui program ar fi evaluat acest lucru ca fiind 25. Motivul: a fi noob.
adăugat autor Shahbaz, sursa
Ce zici de FORTH (sau orice limbă care folosește expresii poloneze invers)?
adăugat autor Paul R, sursa
@dasblinkenlight: vrei să spui din cauza spațiului alb? 2 + 3 * 5 este valabil.
adăugat autor Paul R, sursa
@Tom: nu ezitați să o verificați pe oricare dintre interpreții online on-line: 2 + adaugă 2 la ceea ce este în partea de sus a stivei, 3 * se înmulțește cu 3 , 5 doar împinge 5 pe teanc. Deci, nu obțineți un rezultat semnificativ, dar este cel puțin o sintaxă valabilă.
adăugat autor Paul R, sursa
@PaulR: dasblinkenlight are dreptate ... FORTH utilizează notația posfix (am citit wikipedia), deci operatorul este plasat după operanzi
adăugat autor Tom Sarduy, sursa
Probabil depinde de baza în care sunt numerele;) Dacă este baza 6, nici o limbă nu va produce (sau ar trebui) 17.
adăugat autor Felix Kling, sursa
@PaulR 2 + 3 * 5 nu reprezintă o expresie valabilă în continuare.
adăugat autor dasblinkenlight, sursa
@PaulR: Probabil că va duce la depășirea stivei.
adăugat autor ypercubeᵀᴹ, sursa
Dacă o limbă permite unei variabile să fie denumită 2 , atunci da, cu siguranță există.
adăugat autor ypercubeᵀᴹ, sursa

1 răspunsuri

În conformitate cu această pagină , Smalltalk va produce un rezultat diferit:

în evaluarea APL este strict dreapta spre stânga, în Smalltalk este strict stânga spre dreapta </​​p>

APL va obține rezultatul potrivit prin coincidență - va primi o valoare neașteptată pe 3 * 5 + 2 .

0
adăugat