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