Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sml 语法错误在哪里_Sml - Fatal编程技术网

Sml 语法错误在哪里

Sml 语法错误在哪里,sml,Sml,因此,我最近学习了sml,与java相比,我对如何使用sml感到非常困惑。所以有人告诉我,制作一个代码,获取连续的值对,将它们相加,然后将总和插入到一个新列表中 如果原始列表的长度为奇数,则第一个n-1项将成对添加,第n个n个项将简单地复制到新列表的末尾 到目前为止,我的代码是: fun sumpairs x = if null x then [] else (if (tl x =[]) then x else hd x + hd(tl x) :: sumpairs(t

因此,我最近学习了sml,与java相比,我对如何使用sml感到非常困惑。所以有人告诉我,制作一个代码,获取连续的值对,将它们相加,然后将总和插入到一个新列表中

如果原始列表的长度为奇数,则第一个
n-1
项将成对添加,第n个
n个
项将简单地复制到新列表的末尾

到目前为止,我的代码是:

fun sumpairs x =

    if null x then []
    else (if (tl x =[]) then x
    else hd x + hd(tl x) :: sumpairs(tl (tl x));

sumpairs([1,2,3]); (I want to test it on this to get something like [3,3])

但是我有一个语法错误。由于sml没有为我找到错误,我不知道问题是什么,或者它是否有效。我认为这应该是可行的。

中有一个不匹配的括号(if(tlx=[])

(SML的错误消息可能是我遇到过的最令人困惑的消息——我得到了“EOF的语法错误”,这完全没有用。)

如果使用更少的括号,则更容易匹配括号:

fun sumpairs x =
    if null x then []
    else if tl x = [] then x
    else hd x + hd (tl x) :: sumpairs (tl (tl x))
可以显示哪些括号匹配的编辑器也有帮助。
如果你找到了神奇的设置,大多数现代程序员的编辑器都可以做到这一点

我建议您熟悉模式匹配——通常,使用模式比使用条件链更容易遵循逻辑:

fun sumpairs [] = []
  | sumpairs [x] = [x]
  | sumpairs (x::y::xs) = x + y :: sumpairs xs

中有一个不匹配的括号(如果(tl x=[])

(SML的错误消息可能是我遇到过的最令人困惑的消息——我得到了“EOF的语法错误”,这完全没有用。)

如果使用更少的括号,则更容易匹配括号:

fun sumpairs x =
    if null x then []
    else if tl x = [] then x
    else hd x + hd (tl x) :: sumpairs (tl (tl x))
可以显示哪些括号匹配的编辑器也有帮助。
如果你找到了神奇的设置,大多数现代程序员的编辑器都可以做到这一点

我建议您熟悉模式匹配——通常,使用模式比使用条件链更容易遵循逻辑:

fun sumpairs [] = []
  | sumpairs [x] = [x]
  | sumpairs (x::y::xs) = x + y :: sumpairs xs

数一数你的圆括号。我数一数开始圆括号比结束圆括号多。数一数你的圆括号。我数一数开始圆括号比结束圆括号多。