Я нуб OCaml. Я пытаюсь понять, как обрабатывать оператор сравнения, который передается в функцию.
Моя функция просто пытается передать оператор сравнения (=, <,> и т. Д.) И int.
let myFunction comparison x =
if (x (comparison) 10) then
10
else
x;;
Я надеялся, что этот код будет оцениваться (если передано "="):
if (x = 10) then
10
else
x;;
Однако это не работает. В частности, он думает, что x - это bool, о чем свидетельствует это сообщение об ошибке:
This expression has type 'a -> int -> bool
but an expression was expected of type int
Как я могу делать то, что пытаюсь сделать?
Что касается побочного вопроса, как я мог понять это самостоятельно, чтобы мне не пришлось полагаться на постороннюю помощь от форума? Какие хорошие ресурсы доступны?