2008-09-19 35 views
20

Tôi vừa mới bắt đầu một trong các khóa học của mình, vì lớp học mới bắt đầu cách đây 2 tuần, và chúng tôi đang học chương trình ngay bây giờ trong một phần vì tôi giả định một số lý do sau này, nhưng cho đến nay trong lược đồ. Khi tôi ngồi đây cố gắng tỉnh táo, tôi chỉ cố gắng hiểu tại sao tôi muốn biết điều này, và tại sao bất cứ ai sử dụng nó. Nó nổi trội ở đâu? Tuần tới, tôi dự định hỏi anh ta, mục tiêu để tìm hiểu ở đây không chỉ là làm thế nào để viết những thứ trong chương trình.Lợi ích của chương trình học?

+11

BTW, tôi nghĩ rằng nó rất phong phú mà bạn có tên người dùng là "gà" và đang đặt câu hỏi về giá trị của Đề án! http://www.call-with-current-continuation.org/ –

+5

Đã gần 4 năm kể từ khi bạn bắt đầu học chương trình. Tôi tò mò những gì bạn nghĩ rằng những lợi ích của việc học nó đã được nhìn lại. –

Trả lời

32

Đó là ngôn ngữ lập trình chức năng và sẽ mở rộng trải nghiệm của bạn.

Thậm chí nếu bạn không sử dụng nó trong thế giới thực không có nghĩa là nó không có bất kỳ giá trị nào. Nó sẽ giúp bạn nắm vững những thứ như đệ quy và giúp bạn buộc phải suy nghĩ về các vấn đề theo những cách khác nhau hơn bình thường.

I muốn trường học của tôi buộc chúng tôi phải học một ngôn ngữ lập trình chức năng.

1

Vấn đề của tôi là khi học được điều này, chúng tôi đã học được ngay lập tức cùng với nó. Tôi không thể giữ hai eo biển để cứu mạng tôi.

Điều tôi đã học được từ họ là cách viết mã c và java tốt hơn. Điều này đơn giản chỉ vì phong cách lập trình khác nhau mà tôi đã học được. Tôi đã thích nghi nhiều hơn về phong cách chức năng vào một số chương trình của tôi và nó đã giúp tôi trong một số trường hợp.

Tôi sẽ không bao giờ muốn chương trình trong chương trình hoặc lisp một lần nữa nếu tôi không phải, nhưng tôi vui vì tôi ít nhất đã làm một chút trong họ chỉ để tìm hiểu cách khác nhau để chương trình.

6

Một số người nói rằng sức mạnh lớn nhất của Đề án là ngôn ngữ giảng dạy. Mặc dù nó rất có lợi cho việc học lập trình chức năng (đó là một cách suy nghĩ hoàn toàn mới) một lợi ích khác trong chương trình học là nó cũng là "thuần khiết". Chắc chắn nó không thể làm một tấn công cụ như java, nhưng đó cũng là những gì tuyệt vời về nó, đó là một ngôn ngữ được thực hiện hoàn toàn bằng dấu ngoặc đơn, ký tự chữ và số, và một dấu câu chỉ khác.

Trong khóa học giới thiệu, chúng tôi được dạy Java và tôi thấy rất nhiều bạn bè đang đấu tranh với 'public static void main' mặc dù đó không phải là điểm của chương trình và cách các giáo sư không có lựa chọn nào khác ngoài 'handwave' cho đến khi chúng tiến bộ hơn. Bạn không thấy điều đó trong Đề án.

Nếu bạn thực sự muốn tìm hiểu những gì Scheme có thể làm trong một miếng bánh đó là thực sự khó khăn để thực hiện trong các ngôn ngữ như Java, tôi đề nghị xem xét điều này: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_sec_1.3

Đây có lẽ là cuốn sách hay nhất viết về Đề án .

8

Các ngôn ngữ như LISP (và Chương trình liên quan rất chặt chẽ) là lập trình tiếng Latin là tiếng Anh.

Bạn không bao giờ có thể nói tiếng Latin một ngày trong cuộc sống bình thường của bạn một lần nữa sau khi tham gia một khóa học, nhưng chỉ đơn giản là học một ngôn ngữ như tiếng Latinh sẽ cải thiện khả năng sử dụng tiếng Anh của bạn.

Điều tương tự cũng đúng đối với Đề án.

6

Tôi thấy tất cả những người này ở đây nói rằng mặc dù họ sẽ không bao giờ thực sự sử dụng Đề án nữa nhưng nó vẫn là một ngôn ngữ đáng giá để học vì nó buộc một cách suy nghĩ nhất định. Trong khi điều này có thể đúng, tôi hy vọng rằng bạn sẽ học Scheme bởi vì cuối cùng bạn sẽ thấy nó hữu ích và không đơn giản chỉ là một bài tập trong học tập.

Mặc dù nó không nhanh như một ngôn ngữ biên soạn, cũng không hữu ích khi phân phối trang web hoặc phân tích cú pháp văn bản, tôi thấy rằng Đề án (và các tiện ích mở rộng khác) không có song song khi nói đến sự đơn giản, thanh lịch, và thao tác chức năng mạnh mẽ của các cấu trúc dữ liệu phức tạp. Thành thật mà nói, tôi nghĩ trong Đề án. Đó là ngôn ngữ tôi giải quyết vấn đề. Đừng từ bỏ hoặc chỉ đơn thuần là tha thứ cho Scheme - cho nó một cơ hội và nó sẽ không làm bạn thất vọng. Bằng cách này, IDE tốt nhất cho Đề án là DrScheme, và nó có chứa phần mở rộng ngôn ngữ để làm bất cứ điều gì bạn có thể làm bằng ngôn ngữ khác, và nếu bạn tìm thấy một cái gì đó nó không thể bạn chỉ có thể sử dụng C FFI và viết nó bản thân bạn.

3

Đề án đã được NASA sử dụng để lập trình một số máy quét sao Hỏa. Việc sử dụng trên thị trường là khá cụ thể, nhưng như tôi chắc chắn các giáo viên của bạn đang nói với bạn, những điều bạn học trong Đề án sẽ tiếp tục lập trình nói chung.

+0

Sự tò mò của NASA! – Timeless

1

Cố gắng không để bị cuốn vào các chi tiết như dấu ngoặc đơn và ô tô/cdr. Hầu hết những gì bạn đang học dịch sang các ngôn ngữ khác theo cách này hay cách khác. Đừng lo lắng về việc liệu bạn có thể đưa Đề án ra thị trường hay không, rất có thể bạn sẽ học một số ngôn ngữ có thể tiếp thị khác trong các lớp khác. Những gì bạn đang học ở đây là quan trọng hơn.

Nếu bạn đang học chương trình, bạn có thể tìm hiểu tất cả về cách hệ thống đối tượng được triển khai (gợi ý: hệ thống đối tượng không phải lúc nào cũng là kiểu có phương thức và biến mẫu được liên kết với nó ...). Mặc dù loại kiến ​​thức này sẽ không giúp ích cho 95% công việc hàng ngày của bạn, nhưng với 5% công việc của bạn, bạn sẽ phụ thuộc vào kiến ​​thức đó.

Ngoài ra, bạn có thể tìm hiểu về các kiểu tính toán hoàn toàn khác nhau, chẳng hạn như luồng/đánh giá lười biếng hoặc lập trình logic ngay cả. Bạn cũng có thể tìm hiểu thêm về cách các chương trình máy tính nói chung được diễn giải; từ những điều cơ bản về cách mã chương trình được đánh giá, đến các khía cạnh sâu hơn như tạo trình thông dịch và trình biên dịch của riêng bạn). Biết loại thông tin này là những gì ngăn cách một lập trình tốt từ một lập trình viên giỏi.

Đề án không thực sự là ngôn ngữ chức năng, đó là phương pháp bất khả tri hơn sau đó. Có lẽ nhiều hơn đến điểm, Đề án là một ngôn ngữ tuyệt vời để lựa chọn nếu bạn muốn khám phá với các phương pháp tính toán khác nhau. Ví dụ, một ngôn ngữ chức năng song song cao "Mối" được xây dựng trên đỉnh của Đề án.

Tóm lại, điểm trong chương trình học là để bạn có thể tìm hiểu các nguyên tắc cơ bản của lập trình.

Nếu bạn cần trợ giúp trong việc lập chương trình trong chương trình thú vị hơn, đừng ngại hỏi. Rất nhiều lập trình viên bị treo lên (ví dụ) dấu ngoặc đơn, khi có những cách hoàn hảo tuyệt vời để làm việc với mã nguồn của chương trình làm cho dấu ngoặc đơn trở nên đáng yêu hơn là ghét. Ví dụ, các emacs với chế độ paredit, một số loại chế độ tương tác chương trình và chế độ highlight-ngoặc đơn là khá tuyệt vời.

6

Tôi khuyên bạn nên giữ tâm trí cởi mở khi học. Hầu hết thời gian ở trường chúng ta không hoàn toàn hiểu được những gì/lý do tại sao chúng ta đang học một chủ đề cụ thể. Nhưng như tôi đã trải qua khoảng một triệu lần trong cuộc sống, nó hóa ra là rất hữu ích và ít nhất là nhận thức được nó sẽ giúp bạn. Đề án, tin hay không, sẽ làm cho bạn trở thành một lập trình viên tốt hơn.

1

Các ngôn ngữ chức năng như Đề án có ứng dụng tuyệt vời cho toán học, trí thông minh nhân tạo, ngôn ngữ học và các lĩnh vực khoa học máy tính khác (học máy, xử lý ngôn ngữ tự nhiên, v.v.). Điều này là do độ tinh khiết của các ngôn ngữ lập trình hàm, không có tác dụng phụ, cũng như khả năng điều hướng các thủ tục bậc cao một cách dễ dàng.Một kiến ​​thức mạnh mẽ về các ngôn ngữ lập trình hàm là rất quan trọng để giải quyết nhiều câu hỏi mà chỉ cần vượt ra ngoài biên giới của khoa học máy tính. Như một phần thưởng, bạn sẽ nhận được rất nhiều với các thủ tục bậc cao và đệ quy.

+0

Đề án không phải là ngôn ngữ chức năng thuần túy. – newacct

+0

Đúng, nhưng nếu việc sử dụng Đề án của bạn chủ yếu là không hoạt động thì bạn không nên sử dụng Đề án. Bất cứ ai học Scheme mà không có được một sự hiểu biết vững chắc về lập trình chức năng đã không thành công "học" Đề án. – Reggie

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