-
Notifications
You must be signed in to change notification settings - Fork 12
/
AddMult.hs
35 lines (26 loc) · 831 Bytes
/
AddMult.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--------------------------------------------------------------------------------
-- Copyright © 2011 National Institute of Aerospace / Galois, Inc.
--------------------------------------------------------------------------------
-- | Another small example.
module AddMult ( addMult ) where
import Prelude ()
import Language.Copilot
--------------------------------------------------------------------------------
spec :: Spec
spec =
trigger "f" true [ arg $ mult 5 ]
where
mult :: Word64 -> Stream Word64
mult 0 = 1
mult i = constant i * mult (i-1)
addMult :: IO ()
addMult = do
putStrLn "PrettyPrinter:"
putStrLn ""
prettyPrint spec
putStrLn ""
putStrLn ""
putStrLn "Interpreter:"
putStrLn ""
interpret 100 spec
--------------------------------------------------------------------------------