2와 0 열에서 '2020' 찾기
연하장을 위해 PostScript로 작성한 것을 Haskell로 다시 작성했습니다. 좀 더 다양한 글쓰기를 할 수 있을 것 같다. 쉘 스크립트라든지라도 쓸 수 있을 것 같다.
module Main where
import System.Environment (getArgs)
import System.Random
import Data.List
scan2020 :: [Int] -> [[Int]]
scan2020 [] = []
scan2020 ls@(x:xs)
| isPrefixOf the2020 ls = the2020 : (scan2020 $ drop 4 ls)
| otherwise = [x] : scan2020 xs
where the2020 = [2, 0, 2, 0]
hl2020 :: [[Int]] -> [String]
hl2020 [] = []
hl2020 (x:xs)
| length x == 4 =
concat ["\ESC[31m", intercalate " " $ map show x, "\ESC[m"] : hl2020 xs
| otherwise = concatMap show x : hl2020 xs
main :: IO ()
main = do
a <- fmap (read . head) getArgs
s <- getStdGen
putStrLn $ intercalate " " $ hl2020 $ take a $ scan2020 $ twoandzero s
where
twoandzero s = map ((*2) . flip mod 2) (randoms s :: [Int])
Reference
이 문제에 관하여(2와 0 열에서 '2020' 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/golden_lucky/items/8d1297a6c4afcd95e49c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)