Функция (==) является оператором физического равенства.Если вы хотите проверить, имеют ли два объекта одинаковое содержимое, то вам следует использовать оператор структурного равенства, который имеет один знак равенства (=) .
Как лучше всегоположить эти 3 заявления вместе?
В OCaml нет операторов .Только выражения, все возвращаемые значения.Это похоже на математическую формулу, где у вас есть числа, операторы и функции, и вы объединяете их вместе в большие формулы, например, sin (2 * pi)
.Наиболее близкой вещью к выражению является выражение, которое имеет побочные эффекты и возвращает значение типа unit.Но это все еще выражение.
Вот пример того, как вы можете построить свое выражение, которое сначала свяжет возвращенную подстроку с переменной ss
, а затем вычислит в порядке двух выражений: безусловная печать и условная печать.В целом, это будет одно выражение, оценивающее значение единицы.
open Str
let () =
let ss = Str.first_chars "testing" 3 in
print_endline ("The first 3 chars of 'testing' are: " ^ ss);
if ss = "tes"
then print_endline "These are equal to 'tes'"
else print_endline "These are NOT equal to 'tes'"
и вот как это работает
$ ocaml str.cma test.ml
The first 3 chars of 'testing' are: tes
These are equal to 'tes'