OCaml“else”语法错误

2023-11-30

我是第一次学习 OCaml,我遇到了一个非常模糊的“语法错误”的麻烦。 定义函数时generateboxes像这样:

let rec generateboxes a b = 
    if a = (add1 b) then (force_newline ()); (print_sting "Done!")
    else if [1] = (Array.get finalarray a) then (populatebox
    (numbertoposition a) a); (generateboxes (add1 a) b)
    else (generateboxes (add1 a) b);;

编译器给出错误消息:“语法错误”,它指向第一个else。我的代码输出这样的消息有什么明显的错误吗? (我意识到代码脱离了上下文,但如果它是语法错误那么它应该不重要)。


let rec generateboxes a b = 
    if a = add1 b then (force_newline (); print_sting "Done!")
    else if [1] = Array.get finalarray a then
      (populatebox (numbertoposition a) a; generateboxes (add1 a) b)
    else generateboxes (add1 a) b;;

如果一个语句中有多个语句then or an else子句,您需要将它们放在括号内。 或者,你可以把begin ... end在他们旁边:

let rec generateboxes a b = 
    if a = add1 b
    then begin
      force_newline ();
      print_sting "Done!" end
    else if [1] = Array.get finalarray a
    then begin
      populatebox (numbertoposition a) a;
      generateboxes (add1 a) b end
    else generateboxes (add1 a) b;;

(请注意,我还删除了一些不必要的括号以使代码更清晰。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OCaml“else”语法错误 的相关文章

  • 如何强制 OCaml 推断出更通用的类型?

    我想定义一个接受可选参数的函数 该参数是一个函数 a gt b 默认值应该是identity 实际上就是 a gt a 但我认为没有理由它不应该与更通用的兼容 a gt b 当我尝试时 let optional apply f i matc
  • 为什么 if 语句中的赋值等于 true?

    首先我要说的是我理解两者之间的区别 and 第一个用于将右侧值分配给左侧变量 第二个用于比较两个值的等价性 第三个不仅用于等价性 还用于类型比较 即true 1会回来false 所以我知道almost任何时候你看到if 作者很有可能打算使用
  • 调用 UDF 时公式中使用的值的数据类型错误

    我一直在努力找出这里出了什么问题 我有两个包含字符串值的列 我使用第三列调用工作表中的 UDF 但最终得到 Value 并出现错误 公式中使用的值的数据类型错误 Eg Col I Col J File1 Y File1 N File2 Y
  • Sencha Touch Uncaught typeError:未定义不是函数

    我最近开始检查 Sencha Touch 在遵循教程时 我遇到了一些我似乎无法解决的问题 sencha 提供的 app js 中的一些基本代码运行良好 其他人似乎会出错 例如 new Ext application name NotesAp
  • 用于在 JAGS 中定义分布的 if/else 语句

    在 JAGS 中 我想为参数 w i 定义泊松分布 如果另一个参数 e i 大于 0 该分布也会被截断 大于或等于 2 本质上我希望它代表 w i ifelse e i gt 0 dpois mu T 2 dpois mu 我尝试通过调整响
  • UnicodeDecodeError:“charmap”编解码器无法解码位置 55 中的字节 0x81:字符映射到 <未定义>

    我是 Python 新手 希望有人能向我解释错误消息的含义 具体来说 我在Atom中保存了一些Python和SPSS结合在一起的代码 这是我以前的同事创建的 现在 由于前同事已经不在了 我现在需要运行代码 我所做的是从 SPSS22 运行下
  • Excel,多个 IF AND 更高效的公式

    我正在制作一个电子表格 如下所示 Index Diff Exc Sym Sec Result Criteria Met 3 42 2 07 0 86 0 92 1 83 1 95 0 38 2 93 0 87 0 23 2 01 0 09
  • 执行许多插入重复键更新错误:未使用所有参数

    所以我一直在尝试使用 python 2 7 15 使用 mysql connector 执行此查询 但由于某种原因 它似乎不起作用并且总是返回错误 并非所有参数都被使用 表更新有一个主键 即 ID 这是我尝试运行此 SQL 的查询 sql
  • 在 SVG 中设置悬停语句样式

    我正在计划一个基于这个 SVG 插图的网络 菜单 我的想法的原则 一个样式为活动的圆圈 一个样式为悬停的圆圈以及一个也需要设置样式的伴随笔画 https i stack imgur com H397o png 当我阅读 SVG 文件的规范时
  • R中具有特定条件的多列变异

    我有这个数据 M1 M2 M3 UCL 1 2 3 1 5 我想在这种情况下创建新列 如果M1大于UCL MM1将为 UP 否则为 NULL 如果M2大于UCL MM2将为 UP 否则为 NULL 如果M3大于UCL MM3将为 UP 否则
  • 变体的结构比较

    我想处理整数行的限制 我想拥有Pervasives compare treat RightInfinity gt Point x对全部x 以及反函数LeftInfinity In the ocaml REPL type open pt Le
  • tweepy 流到 sqlite 数据库 - 语法错误[重复]

    这个问题在这里已经有答案了 可能的重复 tweepy 流到 sqlite 数据库 语法无效 https stackoverflow com questions 9434205 tweepy stream to sqlite database
  • 检查非零的惯用方法

    当我想检查一个值是否为0在C中 它是如何惯用的 if num if num 0 虽然这是一个品味问题 但我发现这很大程度上取决于意图 如果该值用作布尔值 没关系 如果值正在计算某些东西 则相等更有意义 if isVisible if isV
  • 为什么 00.0 会导致语法错误?

    这很奇怪 这是 Chrome 中 JavaScript 控制台 版本 42 0 2311 135 64 位 中发生的情况 gt 0 lt 0 gt 00 lt 0 gt 0 0 lt 0 gt 00 0 X Uncaught gt Synt
  • python 中的错误 - “NoneType”类型的对象没有 len()

    我不确定我的 python 代码有什么问题 geneid request args get geneid sql text select from INFO where name ident genes engine execute sql
  • 从 for 循环中的 if else 语句的最后一行提取信息 Python

    我认为这是不可能的 但我想我会问以防万一 所以我试图编写一个内存高效的 p ython 程序来解析通常大小为 100 gigs 的文件 我想做的是使用 for 循环读取一行 多次分割不同的字符并将其全部写入同一个循环中 诀窍是该文件包含以
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • 在 ifelse() 语句内部和外部运行一行时的不同输出

    我正在尝试运行一个简单的命令 但不知道为什么在内部和外部运行它时输出不同ifelse 功能 函数条件评估为FALSE 所以输出应该完全相同 但是 单独运行时 输出为0 0 1 1 0 1 0 1 NA 根据需要 但是从ifelse 函数 输
  • Python - 根据条件调用函数

    我想知道是否有一种简洁的方法来根据条件调用函数 我有这个 if list 1 some dataframe df myfunction 我想知道这是否有可能三元运算符 http book pythontips com en latest t
  • 如何使用“*ngIf else”?

    我正在使用 Angular 并且我想使用 ngIf else 自版本 4 起可用 在此示例中 div content here div div other content here div 我怎样才能实现相同的行为ngIf else 角度

随机推荐