OCaml测试

OCaml测试,ocaml,Ocaml,我正在遵循OCaml的介绍性指南,我正在开发的一个程序不起作用,我想知道是否可以得到解释 let profit_500 : int = let price = 500 in let attendees = 120 in let revenue = price * attendees in let cost = 18000 + 4 * attendees in revenue - cost;; let test () : bool = (prof

我正在遵循OCaml的介绍性指南,我正在开发的一个程序不起作用,我想知道是否可以得到解释

let profit_500 : int = 
    let price = 500 in
    let attendees = 120 in
    let revenue = price * attendees in
    let cost = 18000 + 4 * attendees in
    revenue - cost;;

let test () : bool =
    (profitTest 500) = profit_500
;; run_test "profit at $5.00" test
在第(profitTest 500)=profit_500行,我得到一个错误:无界值利润测试。有人能解释一下原因吗?这是我第一次接触OCaml,但我懂一些java。有人能解释为什么最后;;在运行测试之前,而不是在利润500之后(或者是相同的)


感谢您的帮助

请您详细说明“未绑定”的含义。未绑定的符号(名称)是尚未定义的符号。所以OCaml告诉您,您还没有给出
profitTest
的定义。正如@ElanHamburger所说,这是真的。在您显示的代码中没有使用该名称的函数的定义


如果您遵循指南中的示例,最有可能的事情是,您需要在您给出的
测试
定义之前键入
profitTest
(来自指南)的定义。

我不知道OCAML,但您希望
(profitTest 500)=profit\u 500
做什么?看起来很不舒服。此外,您可能不需要所有这些
let…in
s。我认为您应该能够将所有绑定分组到一个
let
@Carcigenicate下。OCaml要求每个绑定都有一个
let
。这个语法是正确的,真的吗?那太不幸了。我的错。这是OUnit还是其他测试框架<代码>profitTest
未绑定,因为您从未绑定它。你能链接到指南吗?这是讨论中的一页。几乎可以肯定的是,
profitTest
的定义出现在前一页。