F #, trong nhiều trường hợp, có thể tốt hơn hầu hết "ngôn ngữ lập trình chức năng cổ điển khác [s]". Vì bạn đã biết .NET, bạn sẽ có thể tận dụng toàn bộ kiến thức .NET của mình trong khi chọn hai thứ hữu ích từ F #:
Mô hình lập trình chức năng. Đó là, làm thế nào để chương trình theo phong cách của FP. Bạn có thể sử dụng nó bằng bất kỳ ngôn ngữ nào. Tôi thường tìm hiểu về FP trong mã C# của mình, bởi vì tôi thấy nó là một cách dễ dàng hơn và có thể tái sử dụng để viết phần mềm.
Cú pháp lập trình chức năng của một ngôn ngữ. F # rất giống với OCAML, và gia đình ML tạo nên một trong 3 ngôn ngữ chính của ngôn ngữ FP. Hai biggies khác là gia đình Miranda (trong đó Haskell là đại diện chính hiện đại) và gia đình LISP (nơi Common Lisp và Scheme là hai đại diện lớn).
Trong F #, nó có thể giúp bạn phân biệt rõ ràng giữa các loại F # và loại .NET. Records, Tuples và Discriminated Unions (khá nhiều) hoàn toàn là F #, và chúng được sử dụng trong hầu hết các ngôn ngữ chức năng. Sử dụng rất nhiều nếu bạn muốn tìm hiểu FP. Các lớp, cấu trúc và giao diện cũng có trong đó, nhưng đó là các khái niệm .NET. Sử dụng chúng khi cần thiết, nhưng cố gắng tránh chúng nói chung, vì sợ rằng bạn sẽ chỉ viết "C# với cú pháp ngốc nghếch" thay vì F # thành ngữ.
Những điều bạn thực sự bỏ lỡ từ Haskell là độ tinh khiết thực sự (eh, không lớn lắm), đánh giá lười biếng theo mặc định (thay đổi lớn) và nhập lớp. Bạn có thể làm eval lười biếng trong F #, nhưng bạn phải sử dụng rõ ràng Lazy <> các lớp học để có được nó. Có đánh giá lười biếng ở khắp mọi nơi là một trong những điều thực sự độc đáo và mạnh mẽ trong Haskell, nhưng nó không phải là một khái niệm FP nghiêm ngặt. Loại lớp học rất mạnh mẽ, nhưng bạn có thể nhận được mà không có chúng cho hầu hết các tình huống thực tế. Chúng chỉ là một mức độ trừu tượng cao hơn, cắt giảm một số tấm lò hơi và sự lặp lại.
Độ tinh khiết thực sự thường mang tính học thuật cao hơn. Nó có những ưu điểm nhất định, nhưng nếu bạn đã từng sử dụng .NET và các kỹ thuật không tinh khiết, bạn sẽ chỉ thấy khó khăn khi làm việc xung quanh cho đến khi bạn hoàn toàn mua vào tư duy FP.
Bạn có thể sử dụng nhiều ý tưởng của FP bằng nhiều ngôn ngữ khác nhau. Câu hỏi không phải là nó sẽ "khoan FP vào hộp sọ của tôi" - câu hỏi là nó sẽ khuyến khích thói quen FP tốt hay xấu. –