1
Fork 0
solar-conflux/purescript/factorio-throughput/src/Main.purs
2021-04-04 00:37:14 +03:00

35 lines
1.1 KiB
Plaintext

module Main where
import Prelude
import Data.Either (Either(..))
import Data.Tuple (Tuple(..))
import Data.Tuple.Nested ((/\))
import Effect (Effect)
import Effect.Console (log)
import Moontorio.Render (RenderFn, renderFactory)
import RealFunction (PortSide(..), RealFunction, SolveM, collectConstraints, myFactory, runSolveM, tryFindBoundSolveM)
p :: SolveM (Array RealFunction)
p = do
collectConstraints
a <- tryFindBoundSolveM (0 /\ Input)
b <- tryFindBoundSolveM (0 /\ Output)
c <- tryFindBoundSolveM (1 /\ Input)
d <- tryFindBoundSolveM (1 /\ Output)
e <- tryFindBoundSolveM (2 /\ Input)
f <- tryFindBoundSolveM (2 /\ Output)
g <- tryFindBoundSolveM (4 /\ Input)
h <- tryFindBoundSolveM (4 /\ Output)
pure [a, b, c, d, e, f, g, h]
main :: RenderFn -> Effect Unit
main render = do
-- for_ (HashMap.toArrayBy Tuple myFactory) \(Tuple key value) -> log $ show key <> ": " <> show value
case runSolveM myFactory p of
Left err -> log err
Right (Tuple s f) -> do
renderFactory render myFactory s.constraints
-- log $ joinWith "\n" $ show <$> s.constraints
-- logShow $ f <*> pure 0.0