Added length function
This commit is contained in:
parent
b0a5f3fc09
commit
3a644fae90
|
@ -8,7 +8,8 @@
|
||||||
List
|
List
|
||||||
nil
|
nil
|
||||||
cons
|
cons
|
||||||
list-ref)
|
list-ref
|
||||||
|
length)
|
||||||
|
|
||||||
(data List : (-> (A : Type) Type)
|
(data List : (-> (A : Type) Type)
|
||||||
(nil : (-> (A : Type) (List A)))
|
(nil : (-> (A : Type) (List A)))
|
||||||
|
@ -23,3 +24,10 @@
|
||||||
[z (some A a)]
|
[z (some A a)]
|
||||||
[(s (n-1 : Nat))
|
[(s (n-1 : Nat))
|
||||||
((recur rest) n-1)]))]))
|
((recur rest) n-1)]))]))
|
||||||
|
|
||||||
|
(define (length (A : Type) (ls : (List A)))
|
||||||
|
(match ls
|
||||||
|
[(nil (A : Type))
|
||||||
|
z]
|
||||||
|
[(cons (A : Type) (a : A) (rest : (List A)))
|
||||||
|
(s (recur rest))]))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user