The other day I was browsing through computer books. One, on LINQ for VB, seemed very enthusiastic on this radical new technology Microsoft had brought out -- and the example they used to illustrate this was something Smalltalk had 30 years ago. Incidently, Smalltalk isn't normally considered a functional programming language (do doubt because object orientation overshadowed it) but with its closures (called blocks)…
Which book?
The example on page 3 was:
Dim greetings() As String = {"hello world", "hello LINQ", "hello Apress"}
Dim items = _
From s In greetings _
Where s.EndsWith("LINQ") _
Select s
Which In Smalltalk would be: greetings := #('hello world', 'hello LINQ', 'hello Apress').
items := greetings select: [:s | s endsWith: 'LINQ'].
Needless to say I was not completely bowled over by this stunning Microsoft innovation.