view tests/list.ur @ 1249:7c6fc92f6c31

Complain about DValRec; optimizations for unit-valued ECase and forgetting of path conditions across ESeq
author Adam Chlipala <adamc@hcoop.net>
date Thu, 29 Apr 2010 11:47:24 -0400
parents 9021d44ba6b2
children
line wrap: on
line source
fun isNil (t ::: Type) (ls : list t) =
    case ls of
        [] => True
      | _ => False

fun delist (ls : list string) : xbody =
        case ls of
            [] => <xml>Nil</xml>
          | h :: t => <xml>{[h]} :: {delist t}</xml>

fun callback ls = return <xml><body>
  {delist ls}
</body></xml>

fun main () = return <xml><body>
  {[isNil ([] : list bool)]},
  {[isNil (1 :: [])]},
  {[isNil ("A" :: "B" :: [])]}

  <p>{delist ("X" :: "Y" :: "Z" :: [])}</p>
  <a link={callback ("A" :: "B" :: [])}>Go!</a>
</body></xml>