gpt4 book ai didi

compiler-errors - SML 错误 : syntax error: inserting DOT

转载 作者:行者123 更新时间:2023-12-04 06:54:38 25 4
gpt4 key购买 nike

当我在 REPL 中运行这段代码时,它会抛出 Error: syntax error: inserting DOT。我想知道该错误消息的含义。

我已经修复了代码,但仍然想知道该消息的含义以供将来引用。

part_dir 是返回自定义数据类型 direction 的函数,可能的模式是 LeftRight

fun same (fs)=
case fs of
(f1::f2::fs') => case (part_dir(f1),part_dir(f2)) of
(dir1=dir2) => same (f2::fs')
| _ => false
| _ => true

最佳答案

“语法错误:插入点”意味着在它提示的位置有一个意外的标记,并且点在那个位置是合法的。然而,这并不意味着点将是该位置唯一允许的东西,或者用点替换 token 可以修复您的错误。

在大多数情况下,错误消息除了告诉您该位置存在语法错误外毫无用处。您可能应该忽略“插入 DOT”部分,因为它通常不会引导您朝着正确的方向前进。只需查看它所提示的行和列,并尝试找出其中的语法错误。

在您的情况下,问题是 dir1=dir2 不是合法模式。一个合法的模式将是一个数据类型的构造函数,它的每个参数都有模式,一个变量名,_ 或一个常量或一个模式元组。没有模式说“包含两个相等元素的元组”。为此,您需要模式 (dir1, dir2),然后是 if 中的条件 dir1=dir2

在您的情况下,您甚至不需要 if。你可以只写:

(dir1, dir2) => dir1 = dir2 andalso same (f2 :: fs)

关于compiler-errors - SML 错误 : syntax error: inserting DOT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14540520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com