annotate tests/termination.ur @ 1433:66092ce45a76

Ignore JavaScript events in Effectize; allow extra spaces for 'jsFunc'; eat carriage returns at line ends in .urp files
author Adam Chlipala <adam@chlipala.net>
date Thu, 10 Mar 2011 20:22:03 -0500
parents e0ed0d4dabc9
children
rev   line source
adamc@313 1 datatype list a = Nil | Cons of a * list a
adamc@313 2
adamc@313 3 fun isNil (t ::: Type) (ls : list t) : bool =
adamc@313 4 case ls of
adamc@313 5 Nil => True
adamc@313 6 | Cons _ => False
adamc@313 7
adamc@313 8 fun append (t ::: Type) (ls1 : list t) (ls2 : list t) : list t =
adamc@313 9 case ls1 of
adamc@313 10 Nil => ls2
adamc@313 11 | Cons (x, ls1') => Cons (x, append ls1' ls2)
adamc@313 12
adamc@313 13 fun appendR (t ::: Type) (ls2 : list t) (ls1 : list t) : list t =
adamc@313 14 case ls1 of
adamc@313 15 Nil => ls2
adamc@313 16 | Cons (x, ls1') => Cons (x, appendR ls2 ls1')
adamc@313 17
adamc@313 18 (*fun naughty (t ::: Type) (ls : list t) : list t = naughty ls*)
adamc@313 19
adamc@313 20 fun append1 (t ::: Type) (ls1 : list t) (ls2 : list t) : list t =
adamc@313 21 case ls1 of
adamc@313 22 Nil => ls2
adamc@313 23 | Cons (x, ls1') => Cons (x, append2 ls2 ls1')
adamc@313 24
adamc@313 25 and append2 (t ::: Type) (ls2 : list t) (ls1 : list t) : list t =
adamc@313 26 case ls1 of
adamc@313 27 Nil => ls2
adamc@313 28 | Cons (x, ls1') => Cons (x, append1 ls1' ls2)