Tôi đang cố gắng tìm ra những gì \\
có nghĩa là trong Haskell?Dấu chéo ngược kép nghĩa là gì trong Haskell?
Tôi có một chương trình chạy hoàn hảo khi được biên dịch, ngụ ý rằng \\
là một hàm tích hợp, vì nó không được định nghĩa ở bất kỳ đâu trong chương trình. Tuy nhiên, trong GHCi, nếu tôi cố gắng sử dụng nó theo cách tương tự, tôi nhận được một lỗi nói rằng nó không nằm trong phạm vi.
Điều đó có ý nghĩa gì đó đặc biệt trong từng ngữ cảnh không?
Đây là mã của tôi;
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
Dùng thử Google trước? – Piccolo
Trước tiên hãy thử sử dụng [Hoogle] (http://www.haskell.org/hoogle/)? –
Tôi luôn thử Google trước ... nhưng Hoogle? Chưa bao giờ nghe nói về nó ... Cảm ơn! Nó có câu trả lời của tôi! – CodyBugstein