on 7afa310 help sign in
Idris-dev/test/basic003/test027.idr
25 lines 576 B history raw
1module Main
3using (Ord a, Num n)
5 isort : List a -> List a
6 isort [] = []
7 isort (x :: xs) = insert x (isort xs)
8 where -- insert : a -> List a -> List a
9 insert x [] = [x]
10 insert x (y :: ys) = if x < y then x :: y :: ys
11 else y :: insert x ys
13 msum : Num n => List n -> n
14 msum [] = 0
15 msum (x :: xs) = x + msum xs
17 mprod : List n -> n
18 mprod [] = 1
19 mprod (x :: xs) = x * mprod xs
21main : IO ()
22main = do print $ isort [1,5,3,5,1,9,8]
23 print $ msum [1..10]
24 print $ mprod [1..10]