Sono un OCOBL noob. Sto cercando di capire come gestire un operatore di confronto passato in una funzione.OCaml: utilizzo di un operatore di confronto passato in una funzione
La mia funzione tenta solo di passare in un operatore di confronto (=, <,>, ecc.) E un int.
let myFunction comparison x =
if (x (comparison) 10) then
10
else
x;;
Speravo che questo codice sarebbe valutato come (se un "=" sono stati passati in):
if (x = 10) then
10
else
x;;
Tuttavia, questo non sta funzionando. In particolare, si pensa che la x è un bool, come evidenziato da questo messaggio di errore:
This expression has type 'a -> int -> bool
but an expression was expected of type int
Come posso fare quello che sto cercando di fare?
In una domanda a parte, come ho potuto capirlo da solo, quindi non devo fare affidamento su un aiuto esterno da un forum? Quali buone risorse sono disponibili?
Si noti inoltre che una volta che hai in una variabile, non è possibile usarli come operatori in linea. –