我有一个 Haskell 程序,主要有两行代码:
putStrLn $ "Day11: part1: " ++ show (sum $ bigManhattan 1 galaxies <$> pairs)
putStrLn $ "Day11: part2: " ++ show (sum $ bigManhattan 999999 galaxies <$> pairs)
Run Code Online (Sandbox Code Playgroud)
如果我注释掉其中任何一个,程序将在 0.01 秒内运行。由于两者都存在,该程序需要 90 秒的时间。
我想知道有人有什么想法吗?他们是否会竞争查看数据并互相妨碍?
编译器选项 - 我不知道其中大多数是做什么的......
ghc-options:
- -Wall
- -Wcompat
- -Widentities
- -Wincomplete-record-updates
- -Wincomplete-uni-patterns
- -Wmissing-export-lists
- -Wmissing-home-modules
- -Wpartial-fields
- -Wredundant-constraints
- -O2
Run Code Online (Sandbox Code Playgroud)
代码:
module Day11(day11) where
import Data.List ((\\))
import Data.Maybe (catMaybes)
type Coord = (Int, Int)
manhattan :: …Run Code Online (Sandbox Code Playgroud)