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 =
(profitTest 500) = profit_500
;; run_test "profit at $5.00" test
在线(profitTest 500)= profit_500我越来越错误:无界价值利润测试。有人能解释为什么吗?这是我第一次游览OCaml,但我知道一些Java。有人可以解释为什么最后;;在run_test之前而不是在profit_500之后(或者是相同的)?
感谢您的帮助
这可能有助于阐明“无约束”的含义。未绑定的符号(名称)是一个尚未定义的符号。所以OCaml告诉你,你还没有给出profitTest
的定义。正如@ElanHamburger所说,这是真的。在您显示的代码中没有定义具有该名称的函数。
如果您正在遵循指南中的示例,最可能的情况是您需要在test
的定义之前键入profitTest
的定义(来自指南),然后按照您的指示输入它。
https://1drv.ms/i/s!AgZffw7HX09VgRXk-P57a7fwPFAt 这是页面。谢谢! – user402517
这是讨论中的一页。 “profitTest”的定义几乎可以肯定出现在前面的页面上。 –
我不知道OCAML,但你期待'(profitTest 500)= profit_500'做什么?它看起来非常好。另外,你可能不需要所有那些“让...进去”。我认为你应该能够将所有绑定分组在一个“let”下。 – Carcigenicate
@Carcigenicate OCaml需要一个'let'用于每一个绑定。该语法是正确的。 –
@ElanHamburger真的吗?那真不幸。我的错。 – Carcigenicate