Mercurial > urweb
view tests/nest.ur @ 2174:ce312cad5ecd
Use correct OpenSSL thread safety macros on OS X (closes #209)
Create an Autoconf test to determine if pthread_t is a pointer or scalar
type, and use the appropriate CRYPTO_THREADID_set macro based on the
result.
author | Benjamin Barenblat <bbaren at mit.edu> |
---|---|
date | Sun, 20 Sep 2015 17:46:07 -0400 |
parents | 787d4931fb07 |
children |
line wrap: on
line source
fun add x = let fun add' y = x + y in add' 1 + add' 2 end fun f (x : int) = let fun page () = return <xml><body> <a link={page ()}>{[x]}</a> </body></xml> in page end fun f (x : int) = let fun page1 () = return <xml><body> <a link={page2 ()}>{[x]}</a> </body></xml> and page2 () = case Some True of Some r => return <xml><body><a link={page1 ()}>{[r]}</a></body></xml> | _ => return <xml>Error</xml> in page2 end fun f (x : int) = let fun page1 () = return <xml><body> <a link={page2 ()}>{[x]}</a> </body></xml> and page2 () = case Some True of Some r => return <xml><body><a link={page1 ()}>{[r]}</a></body></xml> | _ => return <xml><body><a link={page3 ()}>!!</a></body></xml> and page3 () = return <xml><body><a link={page2 ()}>!</a><a link={page1 ()}>!</a> <a link={page3 ()}>!</a></body></xml> in page3 end fun add2 (x : int) (y : int) = let fun add3 () = x + y in add3 end fun add3 (x : int) = let fun add2 (y : int) = let fun add1 (z : int) = x + y + z in add1 end in add2 end (*datatype list t = Nil | Cons of t * list t fun length (t ::: Type) (ls : list t) = let fun length' ls acc = case ls of Nil => acc | Cons (_, ls') => length' ls' (acc + 1) in length' ls 0 end *)