mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-24 04:09:10 +03:00
a972778eab
They don't all pass yet, for minor reasons. Coming shortly... Unfortunately the startup overhead for chez is really noticeable here!
46 lines
1.6 KiB
Idris
46 lines
1.6 KiB
Idris
data Vect : Nat -> Type -> Type where
|
|
Nil : Vect Z a
|
|
(::) : a -> Vect k a -> Vect (S k) a
|
|
|
|
append : Vect n a -> Vect m a -> Vect (n + m) a
|
|
append [] ys = ys
|
|
append (x :: xs) ys = x :: append xs ys
|
|
|
|
-- Primarily to check the number of cases in the totality checker doesn't
|
|
-- explode because of all the Nils and Nats
|
|
funny : Vect 4 Bool -> Int
|
|
funny [False, False, False, False] = 0
|
|
funny [False, False, False, True] = 1
|
|
funny [False, False, True, False] = 2
|
|
funny [False, False, True, True] = 3
|
|
funny [False, True, False, False] = 4
|
|
funny [False, True, False, True] = 5
|
|
funny [False, True, True, False] = 6
|
|
funny [False, True, True, True] = 7
|
|
funny [True, False, False, False] = 8
|
|
funny [True, False, False, True] = 0
|
|
funny [True, False, True, False] = 10
|
|
funny [True, False, True, True] = 11
|
|
funny [True, True, False, False] = 12
|
|
funny [True, True, False, True] = 13
|
|
funny [True, True, True, False] = 14
|
|
funny [True, True, True, True] = 15
|
|
|
|
notFunny : Vect 4 Bool -> Int
|
|
notFunny [False, False, False, False] = 0
|
|
notFunny [False, False, False, True] = 1
|
|
notFunny [False, False, True, False] = 2
|
|
-- notFunny [False, False, True, True] = 3
|
|
notFunny [False, True, False, False] = 4
|
|
notFunny [False, True, False, True] = 5
|
|
notFunny [False, True, True, False] = 6
|
|
-- notFunny [False, True, True, True] = 7
|
|
notFunny [True, False, False, False] = 8
|
|
notFunny [True, False, False, True] = 0
|
|
notFunny [True, False, True, False] = 10
|
|
notFunny [True, False, True, True] = 11
|
|
notFunny [True, True, False, False] = 12
|
|
notFunny [True, True, False, True] = 13
|
|
notFunny [True, True, True, False] = 14
|
|
notFunny [True, True, True, True] = 15
|