# HG changeset patch # User Yasutaka Higa # Date 1427184240 -32400 # Node ID 57601209eff31b15e82b4b7ea2c8c11ca0e7abf9 # Parent b93e4b2aea9edece126b470827c0f42cfd2885dd Add an example used multi types on Delta diff -r b93e4b2aea9e -r 57601209eff3 haskell/Example/DynamicDelta.hs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/haskell/Example/DynamicDelta.hs Tue Mar 24 17:04:00 2015 +0900 @@ -0,0 +1,19 @@ +module Example.DynamicDelta where + +import Delta +import Data.Dynamic + +val :: Delta Dynamic +val = Delta (toDyn True) (Mono (toDyn ([1,2,3,2,1] :: [Int]))) + +func :: Dynamic -> Delta Dynamic +func x = let funcToBool = toDyn not + funcToList = toDyn (sum :: [Int] -> Int) + in + Delta (dynApp funcToBool x) (Mono (dynApp funcToList x)) + +firstVal :: Delta Dynamic -> Maybe Bool +firstVal = fromDynamic . headDelta + +secondVal :: Delta Dynamic -> Maybe Int +secondVal = fromDynamic . headDelta . tailDelta