我想弄清楚什麼\\
在Haskell中的含義?Haskell中的雙反斜槓意味着什麼?
我有一個編譯時運行完美的程序,這意味着\\
是一個內置函數,因爲它沒有在程序中的任何位置定義。然而,在GHCi中,如果我嘗試以相同的方式使用它,我會收到一個錯誤,說它不在範圍內。
這是否意味着在每種情況下特殊的東西?
這是我的代碼;
module Main where
import Data.List
numbersA = [1, 105, 103, 7, 4, 102, 3, 101, 107, 8, 9]
numbersB = [6, 9, 7, 8, 1, 5, 3, 2, 4]
type Number = Integer
type Run = [Number]
extractRuns :: [Number] -> [Run]
extractRuns [] = []
extractRuns xs = run : extractRuns xs'
where run = buildRun (head xs) (tail xs)
xs' = xs \\ run
buildRun :: Number -> [Number] -> Run
buildRun seed numbers
| endRun = [seed]
| otherwise = seed : buildRun seed' numbers'
where endRun = successors == []
successors = filter (.#. seed) numbers
numbers' = numbers \\ [seed]
seed' = head successors
(.#.) :: Number -> Number -> Bool
x .#. y = x /= y && abs (x - y) < 10
runs = extractRuns numbersA
main = print runs
請先試試Google? – Piccolo 2013-02-12 04:51:04
先試試[Hoogle](http://www.haskell.org/hoogle/)? – 2013-02-12 04:51:46
我總是首先嚐試Google ...但Hoogle?從來沒有聽說過...謝謝!它有我的答案! – CodyBugstein 2013-02-12 04:56:16