如何解决在 Ocaml 中的函数内调用函数时出现语法错误
在lp 中调用 函数f 和g 并将它们分配给时出现语法错误y 和 z
let lp m =
let y = f m in
let z = g y (List.length y) m;
这是我的完整代码:
open Printf
open Format
let regraUm m = m/2
let regraDois m = ((m / 10) mod 10) * (m mod 10)
let regraTres m = 42
let f m =
let list = ref [] in
if ((m mod 2) = 0) then list := 1::!list;
if ((m mod 3) = 0) || ((m mod 4) = 0) then list := 2::!list;
if ((m mod 5) = 0) then list := 3::!list;
!list
let g list len m =
let res = ref [] in
for i = 0 to (len-1) do
let regra = List.nth list i in
if (regra = 1) then res := (m - (regraUm m))::!res;
if (regra = 2) || ((m mod 4) = 0) then res := (m - (regraDois m))::!res;
if (regra = 3) then res := (m - (regraTres m))::!res;
done;
!res
let lp m =
let y = f m in
let z = g y (List.length y) m;
语法错误:
ocamlopt regras.ml -o r
File "regras.ml",line 33,characters 4-4:
Error: Syntax error
f 和 g 在函数之外使用时正常工作。
解决方法
let 绑定需要在 <form id="sib-form" method="POST" action="https://....." data-type="subscription">
<input class="input" type="text" id="FIRSTNAME" name="FIRSTNAME" autocomplete="off" placeholder="First Name" data-required="true" required />
<input class="input" type="text" id="LASTNAME" name="LASTNAME" autocomplete="off" placeholder="Last Name" data-required="true" required />
<input class="input" type="text" id="EMAIL" name="EMAIL" autocomplete="off" placeholder="Email" data-required="true" required />
<button form="sib-form" type="submit">Subscribe </button>
<input type="text" name="email_address_check" value="" class="input--hidden">
<input type="hidden" name="locale" value="en">
</form>
之后附加一些表达式,在您的情况下不存在。在这种情况下,您的代码既可以添加 in
作为表达式,也可以删除绑定,只留下表达式。
z
或者这个
let lp m =
let y = f m in
let z = g y (List.length y) m in
z
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。