guess
This commit is contained in:
parent
9868904f9b
commit
78818f2f53
5 changed files with 27 additions and 8 deletions
|
@ -2,7 +2,7 @@
|
|||
--
|
||||
-- see: https://github.com/sol/hpack
|
||||
--
|
||||
-- hash: 03d70f5a6be06635113793430fa21caa3c0766706d9eee0a561507d82cd760ca
|
||||
-- hash: b0bd48edc90ce1eed0fa5dbe1b4f6f321e28b02044e8d324cfe04b67c5839142
|
||||
|
||||
name: guess
|
||||
version: 0.1.0.0
|
||||
|
@ -35,6 +35,7 @@ library
|
|||
base >=4.8 && <5
|
||||
, protolude
|
||||
exposed-modules:
|
||||
Guess
|
||||
Lib
|
||||
other-modules:
|
||||
Paths_guess
|
||||
|
|
|
@ -21,8 +21,6 @@ dependencies:
|
|||
- protolude
|
||||
library:
|
||||
source-dirs: src
|
||||
exposed-modules:
|
||||
- Lib
|
||||
executables:
|
||||
guess-exe:
|
||||
main: Main.hs
|
||||
|
@ -69,4 +67,4 @@ benchmarks:
|
|||
dependencies:
|
||||
- criterion >=1.1
|
||||
- guess
|
||||
stability: alpha (experimental)
|
||||
stability: alpha (experimental)
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import Protolude
|
||||
|
||||
import Lib (inc)
|
||||
import Guess (guess)
|
||||
|
||||
main :: IO ()
|
||||
main = print (inc 41)
|
||||
main = do
|
||||
guess
|
||||
putText "Bye!"
|
||||
|
|
20
guess/src/Guess.hs
Normal file
20
guess/src/Guess.hs
Normal file
|
@ -0,0 +1,20 @@
|
|||
module Guess
|
||||
( guess
|
||||
) where
|
||||
|
||||
import Protolude
|
||||
|
||||
guess :: IO ()
|
||||
guess = guessBetween 0 120
|
||||
|
||||
guessBetween :: Integer -> Integer -> IO ()
|
||||
guessBetween minAge maxAge = do
|
||||
let age = (maxAge + minAge) `div` 2
|
||||
if minAge == maxAge
|
||||
then putText ("You are " <> show age)
|
||||
else do
|
||||
putText ("Are you younger than " <> show age <> "?")
|
||||
answer <- getLine
|
||||
case answer of
|
||||
"y" -> guessBetween minAge (age - 1)
|
||||
_ -> guessBetween (if age == minAge then age + 1 else age) maxAge
|
|
@ -22,8 +22,6 @@ dependencies:
|
|||
- protolude
|
||||
library:
|
||||
source-dirs: src
|
||||
exposed-modules:
|
||||
- Lib
|
||||
executables:
|
||||
{{ name }}-exe:
|
||||
main: Main.hs
|
||||
|
|
Loading…
Reference in a new issue