Ocaml 有没有可能让一个变量在一个then或else之后呢?
我想做这样一件事:Ocaml 有没有可能让一个变量在一个then或else之后呢?,ocaml,Ocaml,我想做这样一件事: 如果is_approxity(leo,bob)=true,那么让list_1=在list_1中创建_player(list_1)或者list_1 尝试此操作时,出现错误:警告10:此表达式应具有类型单位。 请注意,函数create_player(list_1)将一个元素添加到list_1 let list1 = … in … let list2 = if is_proximity(leo,bob) then create_player(list_1) else list_1
如果is_approxity(leo,bob)=true,那么让list_1=在list_1中创建_player(list_1)或者list_1代码>
尝试此操作时,出现错误:警告10:此表达式应具有类型单位。
请注意,函数create_player(list_1)将一个元素添加到list_1
let list1 = … in
…
let list2 = if is_proximity(leo,bob) then create_player(list_1) else list_1 in
…;;
这个怎么样
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。。。在…
或全局let中,您的let..in
缺少in
部分中绑定有效的表达式。当条件为false时,您希望列表1
的值是什么?已更新,sepp2k,相同value@FrinkL“相同的价值”是什么意思?与什么相同的值?您可以,但在这种情况下,您似乎不需要ref
s。相反,您应该重新构造代码,这样就不需要对现有变量进行变异。因此create\u player
应该只返回已创建的播放器,然后创建播放器列表的代码将调用create\u player
并将结果放入列表中。