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 + -
显示快捷键?