Alice ML:
val (page1, page2, page3) = (spawn getURL "url1",
spawn getURL "url2",
spawn getURL "url3")
The requests are concurrent. Spawn returns a future and 'page1', etc are futures immediately. When the value of 'page1', etc is requested later the requesting process either blocks until the getURL for that value is complete, or transforms into the value implicitly if it's already done.I think it's just as nice as the Haskell example. I do agree that Haskell is a great language though.