git.iko.soy/rowtype-yoga/purescript-native
on 8030607 help sign in
76 lines 1.4 kB history raw
1module Main where
3 import Prelude
4 import Control.Monad.Eff
5 import Debug.Trace
7 bar = \s1 s2 -> s1 ++ s2
9 test1 :: forall n. (Num n) => n -> n -> (n -> n -> n) -> n
10 test1 x y z = x * y + z x y
12 test2 = (\x -> x.foo false) { foo : \_ -> 1 }
14 test3 = (\x y -> x)(1 + 2 * (1 + 2)) (true && (false || false))
16 k = \x -> \y -> x
18 test4 = 1 `k` 2
20 infixl 5 %%
22 (%%) :: Number -> Number -> Number
23 (%%) x y = x * y + y
25 test5 = 1 %% 2 %% 3
27 test6 = ((\x -> x) `k` 2) 3
29 (<>) = \s1 s2 -> s1 ++ s2
31 test7 = "Hello" <> "World!"
33 (@@) :: forall a b. (a -> b) -> a -> b
34 (@@) = \f x -> f x
36 foo :: String -> String
37 foo = \s -> s
39 test8 = foo @@ "Hello World"
41 test9 = Main.foo @@ "Hello World"
43 test10 = "Hello" `Main.bar` "World"
45 (...) :: forall a. [a] -> [a] -> [a]
46 (...) = \as -> \bs -> as
48 test11 = [1, 2, 3] ... [4, 5, 6]
50 test12 (<%>) a b = a <%> b
52 test13 = \(<%>) a b -> a <%> b
54 test14 :: Number -> Number -> Boolean
55 test14 a b = a < b
57 test15 :: Number -> Number -> Boolean
58 test15 a b = const false $ a `test14` b
60 main = do
61 let t1 = test1 1 2 (\x y -> x + y)
62 let t2 = test2
63 let t3 = test3
64 let t4 = test4
65 let t5 = test5
66 let t6 = test6
67 let t7 = test7
68 let t8 = test8
69 let t9 = test9
70 let t10 = test10
71 let t11 = test11
72 let t12 = test12 k 1 2
73 let t13 = test13 k 1 2
74 let t14 = test14 1 2
75 let t15 = test15 1 2
76 trace "Done"