package Ġland . mo g . hyper app . example Ċ Ċ import Ġland . mo g . hyper app . Actions Ċ import Ġland . mo g . hyper app . State Ċ import Ġland . mo g . hyper app . app Ċ import Ġland . mo g . hyper app . h Ċ import Ġkotlin . browser . document Ċ import Ġkotlin . js . json Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval ĠinitialState Ġ= ĠExample State ( ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 0 ĊĠĠĠ Ġ) ĊĠĠĠĠĊĠĠĠ Ġval Ġinitial Actions Ġ= ĠExample Actions ( ĊĠĠĠĠĠĠĠ Ġup Ġ= Ġ{ Ġvalue Ġ-> Ġ{ Ġstate Ġ-> ĠĊĠĠĠĠĠĠĠĠĠĠĠ ĠExample State ( state . count Ġ+ Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} Ġ}, ĊĠĠĠĠĠĠĠ Ġdown Ġ= Ġ{ Ġvalue Ġ-> Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠExample State ( state . count Ġ- Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} Ġ} ĊĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĊĠĠĠ Ġval Ġview Ġ= Ġ Ġ{ Ġstate : ĠExample State , Ġactions : ĠExample Actions Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġup Attributes Ġ= Ġjson ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" onclick " Ġto Ġ{ Ġactions . up ( 1 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġdown Attributes Ġ= Ġjson ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" onclick " Ġto Ġ{ Ġactions . down ( 1 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġh (" div ", Ġnull , ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh (" h 1 ", Ġnull , ĠarrayOf ( state . count )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh (" button ", Ġdown Attributes , ĠarrayOf ("- ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh (" button ", Ġup Attributes , ĠarrayOf ("+ ")) ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġapp ( initialState , Ġinitial Actions , Ġview , Ġdocument . body !! ) Ċ } Ċ Ċ class ĠExample State ( ĊĠĠĠ Ġval Ġcount : ĠInt Ċ ) Ġ: ĠState Ċ Ċ class ĠExample Actions ( ĊĠĠĠ Ġval Ġdown : Ġ( Int ) Ġ-> Ġ( Example State ) Ġ-> ĠExample State , ĊĠĠĠ Ġval Ġup : Ġ( Int ) Ġ-> Ġ( Example State ) Ġ-> ĠExample State Ċ ) Ġ: ĠActions Ċ