我正在尝试定义一个functino,它找到列表中邻居号码之间的最小距离
这样的事情:
minNeighborsDistance [2,3,6,2,0,1,9,8] => 1
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样:
minNeighborsDistance [] = []
minNeighborsDistance (x:xs) = minimum[minNeighborsDistance xs ++ [subtract x (head xs)]]
Run Code Online (Sandbox Code Playgroud)
虽然这似乎运行,但一旦我输入列表,我收到一个异常错误.
我是Haskell的新手我会很感激这件事的任何帮助.
如果你通过一个单独列表,minNeighborsDistance然后
[]在第一行就不会匹配了(x:xs)分配单个值x和空类似xs,然后head空列表时,它会抛出一个错误.此外,由于您以minNeighborsDistance递归方式调用,因此除了将空列表传递给它之外,最终总是在单个列表上调用它.