This commit is contained in:
Yann Esposito (Yogsototh) 2018-01-07 13:46:38 +01:00
parent 9868904f9b
commit 78818f2f53
Signed by untrusted user who does not match committer: yogsototh
GPG key ID: 7B19A4C650D59646
5 changed files with 27 additions and 8 deletions

View file

@ -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

View file

@ -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)

View file

@ -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
View 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

View file

@ -22,8 +22,6 @@ dependencies:
- protolude
library:
source-dirs: src
exposed-modules:
- Lib
executables:
{{ name }}-exe:
main: Main.hs