Skip to content

Sintassi delle Espressioni

Il parser accetta una grammatica piuttosto semplice.


Precedenza degli operatori

Operatore Associatività Descrizione
(...) Nessuna Raggruppamento
f(), x.y, a[i] Sinistra Chiamata funzione, accesso proprietà, indicizzazione array
! Sinistra Fattoriale
^ Destra Elevamento a potenza
+, -, not, sqrt, ecc. Destra Operatori unari prefissi
*, /, % Sinistra Moltiplicazione, divisione, resto
+, -,
==, !=, >=, <=, >, <, in Sinistra Confronti e appartenenza
and Sinistra AND logico
or Sinistra OR logico
x ? y : z Destra Operatore ternario
= Destra Assegnazione
; Sinistra Separatore espressioni

Operatori unari

  • Accettano un solo argomento
  • Le parentesi sono opzionali
  • Senza parentesi mantengono la loro precedenza

Esempi

sin(x)^2 ≡ (sin x)^2
sin x^2 ≡ sin(x^2)


Elenco operatori

  • -x → Negazione
  • +x → Conversione a numero
  • x! → Fattoriale
  • abs x → Valore assoluto
  • acos x → Arcocoseno
  • asin x → Arcoseno
  • atan x → Arcotangente
  • cbrt x → Radice cubica
  • ceil x → Arrotondamento per eccesso
  • cos x → Coseno
  • exp x → e^x
  • floor x → Arrotondamento per difetto
  • ln x → Logaritmo naturale
  • log10 x → Log base 10
  • not x → NOT logico
  • round x → Arrotondamento
  • sign x → Segno
  • sin x → Seno
  • sqrt x → Radice quadrata
  • tan x → Tangente

Funzioni predefinite

  • random(n) → Numero casuale
  • min(a,b,…) → Minimo
  • max(a,b,…) → Massimo
  • pow(x,y) → Potenza
  • atan2(y,x) → Arcotangente
  • roundTo(x,n) → Arrotonda
  • map(f,a) → Applica funzione
  • filter(f,a) → Filtro
  • join(sep,a) → Join
  • if(c,a,b) → If funzione

Array

[1, 2, 3, 2+2, 10/2, 3!]


Definizione di funzioni

nome(parametri) = espressione

Esempi:

square(x) = x*x
add(a, b) = a + b
factorial(x) = x < 2 ? 1 : x * factorial(x - 1)


Costanti

  • E → Numero di Nepero
  • PI → Pi greco
  • true → Booleano vero
  • false → Booleano falso