purescript-0.6.9.4: examples/passing/Guards.purs
module Main where
foreign import jsMod
"""
function jsMod(x) {
return function (y) {
return x % y;
};
}
""" :: Number -> Number -> Number
infixl 7 %
(%) = jsMod
collatz = \x -> case x of
y | y % 2 == 0 -> y / 2
y -> y * 3 + 1
-- Guards have access to current scope
collatz2 = \x y -> case x of
z | y > 0 -> z / 2
z -> z * 3 + 1
min :: forall a. (Ord a) => a -> a -> a
min n m | n < m = n
| otherwise = m
max :: forall a. (Ord a) => a -> a -> a
max n m = case unit of
_ | m < n -> n
| otherwise -> m
testIndentation :: Number -> Number -> Number
testIndentation x y | x > 0
= x + y
| otherwise
= y - x
main = Debug.Trace.trace $ min "Done" "ZZZZ"