码迷,mamicode.com
首页 > 其他好文 > 详细

趣味编程:静夜思(Haskell版)

时间:2015-05-15 21:27:51      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

-- jys.hs

import Data.Map (fromListWith, toAscList)
import Data.List (intersperse)

(|>) x f = f x
sortAndGroup kv = fromListWith (++) [(k, [v]) | (k, v) <- kv]
sortAndGroupBy f xs = sortAndGroup $ zip (map f xs) xs

verticalWriting text offset = zip [0..] text
    |> sortAndGroupBy ((`mod` offset) . fst)
    |> toAscList
    |> map snd 
    |> map (map snd)
    |> map (intersperse '|')
    |> unlines
    
main = putStrLn $ verticalWriting "床前明月光疑是地上霜举头望明月低头思故乡" 5

--低|举|疑|床
--头|头|是|前
--思|望|地|明
--故|明|上|月
--乡|月|霜|光

趣味编程:静夜思(Haskell版)

标签:

原文地址:http://blog.csdn.net/zwvista/article/details/45749291

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!