【发布时间】:2016-05-03 18:42:47
【问题描述】:
简单示例:我有一些函数,我需要全部调用它们,以修改结构,仅在一个函数中。使用这些简单的函数,任务可以不使用 void 的方式完成,但在其他任务中,您必须使用 void。所以,你可以做什么?
type player = { mutable name : string; mutable points : int } ;;
let putname brad = match brad with
{ name = x; points = y } -> { name = brad; points = y } ;;
let putpoint guy score = match guy with
{ name = x; points = y } -> { name = x; points = score } ;;
let loosers listplayer guy = guy :: listplayer ;;
问题来了——我该如何做下一个功能?
let someoneloses guy = void
guy = putpoint guy 0 ;;
listplayer = loosers (listplayer guy) ;;
【问题讨论】:
-
很不清楚...你能解释一下
someoneloses这个函数应该做什么吗? -
OCaml 中没有
void。所以很难理解你在问什么。我怀疑您试图假装 OCaml 与您已经知道的语言相同,这不太可能奏效。您需要按照自己的方式对待它。 OCaml 中有一个类型unit,其值为()。这有点像其他语言中的void。但我怀疑它会帮助你做你想做的事。 -
谢谢,是的,我是 OCaml 的新手,我必须为我的大学做一份工作。是的,我正在尝试做一个不返回任何内容的函数或方法,无效。因为我必须在其他模块的一个函数中同时调用函数 putpoint 和函数松散。这个想法是这样的:在其他模块中,我有一个功能可以处理人们的争吵,打架 --->> if (peter lost) (putpoint peter 0 &&loosers listplayer peter).. 如果有的话,这个 lenguaje 不能这样做模块化(所以我做了某人丢失的功能)
标签: ocaml ocaml-batteries