git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
First attempt at a prelude
a1ed8a3Phil Freeman
libraries/prelude/prelude.psnew file+142
@@ -0,0 +1,142 @@
1+id :: forall a. a -> a
2+id = \x -> x
3+
4+flip :: forall a b c. (a -> b -> c) -> b -> a -> c
5+flip = \f -> \b -> \a -> f a b
6+
7+const :: forall a b. a -> b -> a
8+const = \a -> \b -> a
9+
10+(|>) :: forall a b c. (a -> b) -> (b -> c) -> a -> c
11+(|>) = \f -> \g -> \a -> g (f a)
12+
13+(<|) :: forall a b c. (b -> c) -> (a -> b) -> a -> c
14+(<|) = flip (|>)
15+
16+-- Maybe
17+
18+data Maybe a = Nothing | Just a
19+
20+maybe :: forall a b. b -> (a -> b) -> Maybe a -> b
21+maybe = \b -> \f -> \m -> case m of
22+ Nothing -> b
23+ Just a -> f a
24+
25+fromMaybe :: forall a. a -> Maybe a -> a
26+fromMaybe = \a -> maybe a id
27+
28+-- Arrays
29+
30+head :: forall a. [a] -> a
31+head = \xs -> case xs of
32+ [x:_] -> x
33+
34+headSafe :: forall a. [a] -> Maybe a
35+headSafe = \xs -> case xs of
36+ [x:_] -> Just x
37+ _ -> Nothing
38+
39+tail :: forall a. [a] -> [a]
40+tail = \xs -> case xs of
41+ [_:xs] -> xs
42+
43+tailSafe :: forall a. [a] -> Maybe [a]
44+tailSafe = \xs -> case xs of
45+ [_:xs] -> Just xs
46+ _ -> Nothing
47+
48+extern length :: forall a. [a] -> Number
49+
50+extern indexOf :: forall a. [a] -> a -> Number
51+
52+extern lastIndexOf :: forall a. [a] -> a -> Number
53+
54+extern concat :: forall a. [a] -> [a] -> [a]
55+
56+extern join :: [String] -> String
57+
58+extern joinWith :: [String] -> String -> String
59+
60+extern push :: forall a. [a] -> a -> [a]
61+
62+extern reverse :: forall a. [a] -> [a]
63+
64+extern shift :: forall a. [a] -> [a]
65+
66+extern slice :: forall a. Number -> Number -> [a] -> [a]
67+
68+extern sort :: forall a. [a] -> [a]
69+
70+extern splice :: forall a. Number -> Number -> [a] -> [a] -> [a]
71+
72+-- Strings
73+
74+extern lengthS :: String -> Number
75+
76+extern charAt :: Number -> String -> String
77+
78+extern indexOfS :: String -> String -> Number
79+
80+extern lastIndexOfS :: String -> String -> Number
81+
82+extern localeCompare :: String -> String -> Number
83+
84+extern replace :: String -> String -> String -> String
85+
86+extern sliceS :: Number -> Number -> String -> String
87+
88+extern split :: String -> String -> [String]
89+
90+extern substr :: Number -> Number -> String -> String
91+
92+extern substring :: Number -> Number -> String -> String
93+
94+extern toLower :: String -> String
95+
96+extern toUpper :: String -> String
97+
98+extern trim :: String -> String
99+
100+-- Regex
101+
102+extern data Regex :: *
103+
104+extern regex :: String -> String -> Regex
105+
106+extern test :: Regex -> String -> Boolean
107+
108+extern match :: Regex -> String -> [String]
109+
110+extern replaceR :: Regex -> String -> String -> String
111+
112+extern search :: Regex -> String -> Number
113+
114+-- Globals
115+
116+extern nan :: Number
117+
118+extern infinity :: Number
119+
120+extern toExponential :: Number -> String
121+
122+extern toFixed :: Number -> Number -> String
123+
124+extern toPrecision :: Number -> Number -> String
125+
126+extern numberToString :: Number -> String
127+
128+extern isNaN :: Number -> Boolean
129+
130+extern isFinite :: Number -> Boolean
131+
132+extern parseFloat :: String -> Number
133+
134+extern parseInt :: String -> Number
135+
136+extern encodeURIComponent :: String -> String
137+
138+extern decodeURIComponent :: String -> String
139+
140+extern encodeURI :: String -> String
141+
142+extern decodeURI :: String -> String