Skip to content

Instantly share code, notes, and snippets.

View kosugi's full-sized avatar

KOSUGI Tomo kosugi

  • tokyo.japan
View GitHub Profile
-- -*- coding: utf-8 -*-
import Test.HUnit
deal :: Int -> String -> [String]
deal n s = deal_ 0 (take n $ repeat "") (take ((length s) - (length s `mod` n)) s)
where deal_ _ ys [] = ys
deal_ m ys (x:xs) = deal_ ((m + 1) `mod` n) ((take m ys) ++ [(ys!!m) ++ [x]] ++ (drop (m + 1) ys)) xs
tests = test [
["111", "222", "333"] ~=? deal 3 "123123123",