私は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
最初に[Hoogle](http://www.haskell.org/hoogle/)を試してみますか? –
私はいつもGoogleを最初に試しています...しかしHoogle?聞いたことがない...ありがとう!それは私の答えがある! – CodyBugstein