【问题标题】:How can use let - in for multiple lines in OCaml?如何在 OCaml 中将 let - in 用于多行?
【发布时间】:2014-08-11 16:52:14
【问题描述】:

我想做以下事情:

let dist = Stack.pop stck and dir = Stack.pop stck in (
    print_endline(dist);
    print_endline(dir);
    ......
    ......
)

上面给了我以下错误:

Error: This expression has type unit
       This is not a function; it cannot be applied.

如何在多行中使用变量 dist 和 dir?

【问题讨论】:

    标签: ocaml


    【解决方案1】:

    错误不在您在此处显示的代码段中。我猜你在某处忘记了;

    但是您的代码中有一个细微的错误。 在这行代码中

    let dist = Stack.pop stck and dir = Stack.pop stck in
    

    您希望在dist 中获得堆栈的第一个元素,在dir 中获得第二个元素,但the order of evaluation is unspecified 可能并非如此。

    【讨论】:

      【解决方案2】:

      您的代码的基本语法没问题。这是一个简单的示例,表明它可以正常工作:

      $ ocaml
              OCaml version 4.01.0
      
      # let x = 5 and y = 4 in (
        print_int x;
        print_int y;
        );;
      54- : unit = ()
      #
      

      报告的错误与其他问题有关。我们需要更多的上下文来查看问题所在。错误可能在您省略的行中。或者它们可能是由接下来发生的事情引起的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-14
        • 1970-01-01
        • 2012-04-28
        • 2015-05-16
        • 1970-01-01
        • 1970-01-01
        • 2014-05-27
        • 2013-11-20
        相关资源
        最近更新 更多