Skip to content

Instantly share code, notes, and snippets.

@patrickt
Last active February 23, 2017 01:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save patrickt/552d41a0166d75add6b39313d72cf473 to your computer and use it in GitHub Desktop.
Save patrickt/552d41a0166d75add6b39313d72cf473 to your computer and use it in GitHub Desktop.
#!/usr/bin/env stack
-- stack --resolver=lts-8.2 runghc --package text
{-# LANGUAGE OverloadedStrings #-}
-- example usage:
-- $ clapper "I wrote this to troll @peterb"
-- yields
-- I πŸ‘ wrote πŸ‘ this πŸ‘ to πŸ‘ troll πŸ‘ peterb πŸ‘
import Data.List (intersperse)
import qualified Data.Text as Text
import qualified Data.Text.IO as Text
import Control.Monad
import System.Environment
import System.Exit
main :: IO ()
main = do
args <- fmap Text.pack <$> getArgs
when (length args == 0) (die "Usage: clapper [SEPARATOR] STRING")
let (separator, message) =
if length args >= 2
then (args !! 0, args !! 1)
else ("πŸ‘", args !! 0)
let asWords = Text.words message
punctuated = intersperse separator asWords ++ [separator]
glued = Text.unwords punctuated
Text.putStrLn glued
@peterb12
Copy link

You are the Blighttown beneath my Dark Souls game.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment