четверг, октября 18, 2007

F# будет включен в состав .Net

Как сообщает Joe Daffy в своем блоге, семейство языков .Net пополнилось: "Welcoming F# to the family".
Вице президент Microsoft Developer Division S. Somasegar анонсировал новый функциональный язык, созданный в недрах Microsoft Research.
Soma[segar] говорит:
"One of the important themes in programming languages over recent years has been a move to embrace ideas from functional programming."


И мы видим это на примере C#. Последние изменения в C# пришли именно из области функционального программирования (анонимные делегаты, лямбда выражения, LINQ). Joe Daffy говорит о том что F# упростит построение параллельных программ.
Похоже MS всерьез повернулась лицом к функциональному программированию:
"This is one of the best things that has happened at Microsoft ever since we created Microsoft Research over 15 years ago." (Somasegar)


И основная причина тому - необходимость адекватного ответа в области средств разработки на вызов со стороны производителей железа в виде многоядерных процессоров.
F# это полностью CLR совместимый язык, и его поддержка будет включена в Visual Studio. В принципе можно уже пробовать

А пока несколько code snippets на F#:


let task1 = async { return 10+10 }
let task2 = async { return 20+20 }
Async.Run (Async.Parallel [ task1; task2 ])

.....

let AsyncHttp(url:string) =
async {// Create the web request object
let req = WebRequest.Create(url)

// Get the response, asynchronously
let! rsp = req.GetResponseAsync()

// Grab the response stream and a reader. Clean up when we're done
use stream = rsp.GetResponseStream()
use reader = new System.IO.StreamReader(stream)

// synchronous read-to-end
return reader.ReadToEnd() }

...

Async.Run
(Async.Parallel [ AsyncHttp "http://www.live.com";
AsyncHttp "http://www.google.com";
AsyncHttp "http://maps.live.com";
AsyncHttp "http://maps.google.com"; ])



Выглядит интересно.

Комментариев нет: