Created
October 2, 2019 17:17
-
-
Save pikajude/73e37308ff357d63de2f47eacf867972 to your computer and use it in GitHub Desktop.
This file contains 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 DisambiguateRecordFields #-} | |
{-# LANGUAGE FlexibleContexts #-} | |
{-# LANGUAGE OverloadedStrings #-} | |
{-# LANGUAGE NoMonomorphismRestriction #-} | |
{-# LANGUAGE OverloadedLists #-} | |
{-# LANGUAGE RecursiveDo #-} | |
{-# LANGUAGE TypeFamilies #-} | |
module Main where | |
import Reflex.Dom | |
import Data.Text ( pack ) | |
import Data.Fixed | |
default () | |
main :: IO () | |
main = mainWidget $ mdo | |
t <- tickLossyFromPostBuildTime (recip 20) | |
cows <- foldDyn (+) (0 :: Integer) (1 <$ buyCow) | |
milkGen <- performEvent | |
(ffor t $ \_ -> do | |
cowCount <- sample (current cows) | |
return $ recip 20 * fromIntegral cowCount | |
) | |
milk <- foldDyn (+) (0 :: Milli) milkGen | |
buyCow0 <- dyn $ ffor2 cows milk $ \cowNumber mNumber -> el "p" $ do | |
text | |
$ pack | |
$ show cowNumber | |
++ " cows owned, produced " | |
++ show mNumber | |
++ "L of milk" | |
button "Buy another cow" | |
buyCow <- switchHold never buyCow0 | |
el "p" $ do | |
text "Milk: " | |
display milk | |
return () |
danbornside
commented
Oct 3, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment