Created
May 23, 2017 07:21
-
-
Save elrikdante/48f9f13b6125c24c4bf539772a102d9f to your computer and use it in GitHub Desktop.
GRE Vocabulary Prep
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE Arrows,OverloadedStrings,BangPatterns #-} | |
module Main where | |
import System.Random | |
import Control.Arrow | |
import Control.Monad | |
import Data.Monoid | |
import qualified Control.Category as Cat | |
import qualified Control.Foldl as Fold | |
import qualified Data.Text as Text | |
import qualified Data.Text.IO as Text | |
import qualified Turtle | |
import Turtle(s,d,(%)) | |
import Control.Foldl (Fold,FoldM) | |
import Data.Text (Text) | |
numWords :: Int {- determined emperically -} | |
numWords = 235886 | |
randomWord :: IO Text | |
randomWord = do | |
(idx,_) <- (pure (randomR (0,numWords))) <*> newStdGen | |
(Turtle.ExitSuccess, out) <- Turtle.shellStrict (cmd idx) Turtle.empty | |
return out | |
where cmd = Turtle.format ("tail -n" %d% " /usr/share/dict/words | head -1") | |
main = randomWord >>= Text.putStr |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment