是否可以在then或else之后让变量?

时间:2018-12-23 10:47:47

标签: ocaml

我想做这样的事情:         if is_proximity(leo,bob) = true then let list_1 = create_player(list_1) in list_1 else list_1;;

尝试此操作时,出现错误:Warning 10: this expression should have type unit.

请注意,函数create_player(list_1)将一个元素添加到list_1

2 个答案:

答案 0 :(得分:1)

您似乎正在寻找类似的东西

let list1 = … in
…
let list2 = if is_proximity(leo,bob) then create_player(list_1) else list_1 in
…;;

答案 1 :(得分:0)

怎么样?

let list_1 =
  if is_proximity leo bob then
    create_player list_1  (* Or, something like (new_player () :: list_1)? *)
  else
    list_1
in ...

您看到的警告指出表达式的类型是某种类型的列表,而不是单位类型。如果要在此之后使用list_1,则可以使用let ... in ...或全局let