edge.hs.txt
来自「Ulm大学2003-2004年竞赛题」· 文本 代码 · 共 34 行
TXT
34 行
-- Problem Edge-- Algorithm Straight-Forward-- Runtime O(n)-- Author Walter Guttmann-- Date 05.01.2003import Complex;import Monad;type Comp = Complex Doublemain :: IO ()main = readFile "edge.in" >>= mapM_ solve . wordssolve :: String -> IO ()solve s = do putStrLn "300 420 moveto" putStrLn "310 420 lineto" foldM turn (310:+420,10:+0) s putStrLn "stroke" putStrLn "showpage"turn :: (Comp,Comp) -> Char -> IO (Comp,Comp)turn (pos,d) c = let print (x:+y) = show (round x) ++ " " ++ show (round y) ++ " lineto" d' = rot d c pos' = pos + d' in putStrLn (print pos') >> return (pos',d')rot :: Comp -> Char -> Comprot d 'A' = d * (0:+(-1))rot d 'V' = d * (0:+1)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?