pair examples
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
{-# LANGUAGE QuasiQuotes #-}
|
{-# LANGUAGE QuasiQuotes #-}
|
||||||
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
module Core.Examples where
|
module Core.Examples where
|
||||||
----------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------
|
||||||
import Core.Syntax
|
import Core.Syntax
|
||||||
@@ -77,6 +78,10 @@ facExample = [coreProg|
|
|||||||
main = fac 3;
|
main = fac 3;
|
||||||
|]
|
|]
|
||||||
|
|
||||||
|
pairExample = [coreProg|
|
||||||
|
main = fst (snd (fst (MkPair (MkPair 1 (MkPair 2 3)) 4)));
|
||||||
|
|]
|
||||||
|
|
||||||
corePrelude :: Module
|
corePrelude :: Module
|
||||||
corePrelude = Module (Just ("Prelude", [])) $ Program
|
corePrelude = Module (Just ("Prelude", [])) $ Program
|
||||||
[ ScDef "id" ["x"] (Var "x")
|
[ ScDef "id" ["x"] (Var "x")
|
||||||
@@ -87,5 +92,8 @@ corePrelude = Module (Just ("Prelude", [])) $ Program
|
|||||||
, ScDef "twice" ["f", "x"] (Var "f" :$ (Var "f" :$ Var "x"))
|
, ScDef "twice" ["f", "x"] (Var "f" :$ (Var "f" :$ Var "x"))
|
||||||
, ScDef "False" [] $ Con 0 0
|
, ScDef "False" [] $ Con 0 0
|
||||||
, ScDef "True" [] $ Con 1 0
|
, ScDef "True" [] $ Con 1 0
|
||||||
|
, ScDef "MkPair" [] $ Con 1 2
|
||||||
|
-- , ScDef "fst" ["p"] $ "casePair#" :$ "p" :$ "k"
|
||||||
|
-- , ScDef "snd" ["p"] $ "casePair#" :$ "p" :$ "k1"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user