我試圖定義發現鄰居數之間的最小距離名單上哈斯克爾:鄰居數之間最小距離列表
像這樣一個functino上:
minNeighborsDistance [2,3,6,2,0,1,9,8] => 1
我的代碼看起來像這樣:
minNeighborsDistance [] = []
minNeighborsDistance (x:xs) = minimum[minNeighborsDistance xs ++ [subtract x (head xs)]]
雖然這似乎運行,一旦我進入一個列表,我收到一個異常錯誤。
我是新來的Haskell我很感謝在這個問題上的任何幫助。
您將在空例中返回一個列表...而您的示例將返回一個數值。你的意思是返回0還是「Nothing」?看起來你想用一個「neighborsDistance」函數來解決這個問題,你可以應用最小值,最大值等。(也許'neighborsDistance [1 2 4] =只是[1 2]',比如'neighborsDistance [ 1] = Nothing')*(我剛剛在閱讀Haskell的初學者問題,開始......)* – HostileFork
只是另一個小提示:用y代表一個元素到列表幾乎總是更高效: '而不是附加'++ [y]',如果你可以使用前者。 –