F# là gì?

Posted: 08/05/2011 in F#
Tags:

FP là một hướng tiếp cận tốt để giải quyết nhiều bài toán gai góc, tuy nhiên thuần functional lại không phù hợp để lập trình với những mục đích thông dụng. Do đó, các ngôn ngữ FP dần dần chấp nhận đặc tính lai tạp từ imperative và OO, để vừa giữ được tư tưởng FP truyền thống, lại vừa tích hợp được những tính năng cần thiết để viết chương trình dễ dàng. F# là ngôn ngữ phát triển theo con đường này.

Một vài ngôn ngữ functional phổ biến như OCaml, Haskell, LISP và Scheme đều sử dụng runtime[1] riêng của nó, dẫn đến sự thiếu tương thích khi đưa vào một hệ thống lớn. F# là ngôn ngữ general-purpose[2] sử dụng .NET runtime, kết hợp nhuần nhuyễn cả ba paradigm lập trình chính. Với F#, bạn có thể chọn lựa paradigm nào là tốt nhất để giải quyết vấn đề theo cách hiệu quả nhất. Bạn có thể dùng thuần FP nếu bạn là người tuân theo chủ nghĩa thuần túy. Tuy nhiên bạn cũng có thể dễ dàng kết hợp phong cách functional, imperative và OO trong cùng một chương trình để khai thác thế mạnh của từng paradigm. Giống như nhiều ngôn ngữ functional có kiểu khác, F# là ngôn ngữ strongly-typed[3]. Điểm đặc biệt là nó tự động định kiểu theo suy luận, nên lập trình viên không cần bỏ thời gian khai báo kiểu dữ liệu (ngoại trừ trường hợp có sự nhập nhằng). Hơn thế nữa, F# tích hợp mật thiết với .NET Framework Base Class Library[4] (BCL). Việc sử dụng BCL trong F# đôi khi còn đơn giản hơn trong C# hay VB.NET.

F# được xây dựng dựa trên mô hình của Ocaml (một ngôn ngữ thành công trong việc kết hợp OO và FP), được hiệu chỉnh và mở rộng để khớp với .NET. Nó liên kết chặt chẽ với .NET và cho phép bạn làm được tất cả những gì .NET có thể. F# biên dịch được tất cả những bản cài đặt theo đặc tả Common Language Infrastructure[5] (CLI), và file thực thi được tạo ra chạy được trên tất cả những môi trường có CLI. Điều này có nghĩa là F# không bị giới hạn bởi Windows, mà còn có thể chạy được trên Linux, Apple Mac OS X và OpenBSD.

Bộ biên dịch của F# được phân phối mặc định trong Visual Studio 2010, hoặc được cung cấp miễn phí dưới dạng plugin trong Visual Studio 2008. Nó hỗ trợ IntelliSense, tự động hoàn chỉnh và kiểm tra lỗi cú pháp, đưa ra tooltip về kiểu ngầm định cho các biểu thức. Đây là những tính năng hữu ích giúp bạn sớm quen được cách lập trình với F#.

F# lần đầu tiên được cài đặt bởi tiến sĩ Don Syme làm việc ở Microsoft Research (MSR) tại Cambridge. Hiện tại, nó được tiếp quản bởi Microsoft, và vẫn đang được tiếp tục phát triển bởi nhóm chuyên gia ở cả Cambridge và Redmond. Mặc dù có nhiều ngôn ngữ FP khác cũng chạy trên .NET, nhưng F# được xem là chính thống nhất vì chất lượng bản cài đặt của nó và mối quan hệ mật thiết giữa nó, .NET và Visual Studio. Có thể nói rằng, hiện tại, không có ngôn ngữ .NET nào dễ sử dụng và linh hoạt như F#.


[1]Runtime ở đây được hiểu theo nghĩa framework, chứ không phải nghĩa “thời gian chạy”.[2] Ngôn ngữ general-purpose được thiết kế để sử dụng trong việc viết phần mềm đáp ứng nhiều lĩnh vực ứng dụng.

[3] Các ngôn ngữ strongly-typed đòi hỏi phải xác định được kiểu dữ liệu của giá trị, không chấp nhận các giá trị không rõ kiểu hoặc kiểu nhập nhằng.

[4] BCL là bộ thư viện chuẩn được sử dụng bởi tất cả những ngôn ngữ sử dụng .NET Framework, bao gồm các hàm thông dụng, xuất nhập file, làm việc với đồ họa, database, XML, …

[5] CLI là một đặc tả mở được xuất bản trong ECMA-335 và ISO/IEC 23271, mô tả mã thực thi và môi trường runtime tạo thành bộ lõi cho .NET Framework và các bản cài đặt mã nguồn mở như Mono và Portable.NET.

nguồn : http://www.vcprojects.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s