2009-03-12 25 views

Trả lời

11

Tôi nghĩ đối với nhà phát triển C# với nền .NET, cách tốt nhất để tham gia lập trình hàm là học F #.

+0

Cuối cùng tôi đã có đủ động lực để thử F # thay vì Haskell. Cảm ơn – suhair

0

Tôi đã học lập trình chức năng ở trường đại học, sử dụng ngôn ngữ Haskell.

Trong trang chủ, rất có thể bạn sẽ tìm thấy những gì bạn cần để bắt đầu :)

BTW, phải mất nhiều thực hành để xem giải pháp; các thuật toán, như vậy, không phải là những gì mọi người sử dụng để mã hóa trong các ngôn ngữ hướng đối tượng, logic hoặc thủ tục.

2

Dành thời gian xem Lisp hoặc Scheme vì họ là cha mẹ của lập trình chức năng. PLT Scheme là một môi trường tuyệt vời để chơi với Đề án. Tự mình lấy một bản sao của The Little Schemer vì đây là một giới thiệu tốt về Đề án và sẽ giúp bạn bắt kịp tốc độ khá nhanh.

Khi bạn đã chuẩn bị xong chức năng của mình, hãy thực hiện một số sự cố Project Euler theo cách chức năng.

4

Chọn ngôn ngữ chức năng. Python có nhiều tính năng chức năng. Haskell hoàn toàn là chức năng.

Đi tới Project Euler.

Giải quyết một số sự cố.

Nếu bạn nhìn vào Project Euler stats, Python và Haskell được xếp hạng rất cao.


Sửa

lập trình chức năng bằng Python:

+0

+1 mặc dù trình cắm Python (là nó KHÔNG hoạt động như vậy :)) –

+0

@OJ: Đã thêm tham chiếu từ những người có vẻ nghĩ rằng Python không hỗ trợ lập trình chức năng. –

+0

Đồng ý, Python không phải là ngôn ngữ lập trình hàm, nhưng nó có các tính năng chức năng. Đây là một bài cũ, và tôi đánh giá cao rằng S.Lott đã viết một cuốn sách về chủ đề này. Tuy nhiên, không có thư viện chức năng của bên thứ ba defacto cho Python đã được viết mà tôi thấy hơi thất vọng. Chắc chắn đã có những nỗ lực và đóng góp khác nhau nhưng không có gì đã giữ trong cùng một cách như nói JS thư viện cho EcmaScript vv. – arcseldon

0

Tôi đồng ý với Mehrdad Afshari. Nếu bạn đã quen thuộc với C# bắt đầu lập trình hàm với F #. Cú pháp tương tự với các biểu thức lambda trong C#.

12

Plugin không biết xấu hổ: Tôi là đồng tác giả (biên tập viên tuyệt vời, thực sự :) của Real World Functional Programming. Nó nhắm vào những người như chính bạn. Nó dạy các nguyên tắc lập trình hàm, chủ yếu thông qua F #, và cũng cho thấy cách bạn có thể áp dụng cùng nguyên tắc trong nhiều trường hợp trong C#.

Giả sử bạn đã biết C# rồi, nhưng giới thiệu F # từ đầu.Nó cung cấp cho bạn đủ kiến ​​thức về F # để giúp bạn bắt đầu để bạn có thể thử nghiệm, nhưng mục đích là dạy một cách suy nghĩ chức năng hơn là đi vào mọi ngóc ngách của F # như một ngôn ngữ. (Nói cách khác, nếu bạn muốn bắt đầu sử dụng F # làm ngôn ngữ sản xuất, tôi cũng sẽ nhận được một cuốn sách khác cũng như.)

Chưa có, nhưng bạn có thể truy cập sớm qua chương trình MEAP. Một số chương có sẵn, với nhiều hơn đến sớm.

+0

Bất kỳ đề xuất cho các nguồn lực khác cho đến khi phiên bản gỗ chết của cuốn sách đó phát hành? – suhair

+0

Nếu bạn quan tâm đến gỗ chết thay vì ebook, có hai cuốn sách Apress F #: Nền tảng của F # (Robert Pickering) và Chuyên gia F # (Don Symes) –

+0

Tôi chỉ đọc phần miễn phí này từ trang Manning - những thứ rất thú vị và được viết tốt. Một điều nhỏ: Trang 16 có "Mã đầu tiên tạo danh sách tạm thời để lưu trữ tất cả các ký tự đã chết" - có thể thực hiện với chỉnh sửa Jon! –

3

Phiên bản trực tuyến miễn phí của Real World Haskell là cách tốt, rẻ tiền để bắt đầu.

Khi bạn đã thực hiện một vài chương, bạn sẽ ở vị trí để quyết định xem FP có dành cho bạn hay không và bạn có muốn tiếp tục với Haskell hoặc chuyển sang một số ngôn ngữ khác không. Bạn thậm chí có thể tiếp tục mua phiên bản cây chết (như tôi đã làm).

Các mô hình bạn học được từ cuốn sách này, đặc biệt là các chương mở, áp dụng tốt cho các ngôn ngữ chức năng khác. (Tôi thích nghĩ rằng Javascript và Groovy của tôi được hưởng lợi từ nghiên cứu của tôi Haskell).

0

Tôi đã thích learn you a haskell cho đến nay, nó khá tốt cho người mới bắt đầu.

Các vấn đề liên quan