Penso che dovresti probabilmente riflettere profondamente sul motivo per cui desideri utilizzare questa funzione. Mi sembra che ci siano considerazioni molto più importanti nella scelta di una lingua.
Posso solo pensare a un possibile significato per la parola "operatore" in questo contesto, che è solo zucchero sintattico per una chiamata di funzione, ad es. foo + bar
verrebbe tradotto come una chiamata a una funzione +(a, b)
.
Questo è talvolta utile, ma non spesso. Posso pensare a pochissimi casi in cui ho sovraccaricato/definito un operatore.
Come indicato nelle altre risposte, Haskell consente di definire nuovi operatori di infisso. Tuttavia, un linguaggio puramente funzionale con valutazione pigra può essere un po 'un boccone. Probabilmente raccomanderei SML su Haskell, se hai voglia di provare un linguaggio funzionale per la prima volta. Il sistema dei tipi è un po 'più semplice, puoi usare gli effetti collaterali e non è pigro.
F # è anche molto interessante e dispone anche di units of measure, che AFAIK è univoco per quella lingua. Se hai bisogno di funzionalità, può essere inestimabile.
Fuori dalla mia testa Non riesco a pensare a nessun linguaggio imperativo staticamente tipizzato con gli operatori infissi, ma potresti comunque voler usare un linguaggio funzionale per la programmazione matematica, dal momento che è molto più facile dimostrare fatti su un funzionale programma.
Si potrebbe anche voler creare un piccolo DSL se i problemi di sintassi come gli operatori infissi sono così importanti per voi. Quindi puoi scrivere il programma in qualsiasi lingua tu voglia e comunque specificare la matematica in un modo conveniente.
fonte
2009-07-26 17:55:41
Definire "operatore". – Svante
"Operatore" è un termine ben definito. –