7

Tôi đã học các Yếu tố và ngôn ngữ J để thử nghiệm với lập trình không có điểm. Cơ chế cơ bản của các ngôn ngữ có vẻ rõ ràng, nhưng nhận được cảm giác về cách tiếp cận thiết kế thuật toán là một thách thức.Fiddling với mã điểm miễn phí?

Một nguồn gây nhầm lẫn cụ thể đối với tôi là cách một cấu trúc mã nên dễ dàng thử nghiệm với các thông số khác nhau. Bằng cách này, tôi có nghĩa là loại điều Mathematica và Matlab là rất tốt tại; bạn thiết lập một thuật toán rồi thao tác các biến và xem điều gì xảy ra.

Làm cách nào để bạn thực hiện điều này mà không có biến số rõ ràng? Có lẽ tôi đang nghĩ về điều này tất cả sai. Làm thế nào tôi nên tiếp cận điều này trong lập trình điểm miễn phí?

Trả lời

9

Dưới đây là ba lời khuyên quan trọng mà tôi thấy thực sự hữu ích khi giao dịch với mô hình concatenative (áp dụng cho các ngôn ngữ lập trình Yếu tố trong trường hợp của tôi):

  • Yếu tố mã của bạn không thương tiếc. Viết các hàm cực nhỏ: nếu có nhiều hơn 3-4 tham số ngăn xếp, có thể bạn có thể chia nhỏ thành các phần nhỏ hơn.
  • Đầu tư thời gian của bạn vào việc học các bộ kết hợp dataflow (bi, tri, phân tách, lan truyền, ...). Chúng cho phép thể hiện các mô hình dataflow phổ biến trong khi loại bỏ sự cần thiết của việc xáo trộn stack phức tạp.
  • Tìm hiểu cách tạo trích dẫn từ các trích dẫn khác. Sử dụng các kỹ thuật currying (cà ri, với, ...) để xây dựng các trích dẫn đơn giản từ các tham số ngăn xếp và khi mọi thứ trở nên quá phức tạp, hãy sử dụng trích dẫn chiên (từ "chiên"). Chúng cho phép dễ dàng xây dựng các trích dẫn lồng nhau phức tạp từ các mẫu, mà không có bất kỳ sự xáo trộn xếp chồng nào.

Và như thường lệ, đọc và "Đi bộ" vào mã hiện có. Trong Factor nó là khá dễ dàng để khám phá thời gian chạy và xem cách mọi thứ đang làm việc.

Đối với nguồn gây nhầm lẫn cụ thể của bạn, nếu bạn có nhiều tham số đầu vào trong thuật toán, điều quan trọng nhất cần làm là nghiên cứu cách chúng sẽ được sử dụng. Thu hoạch cho các mẫu dataflow. Bạn phải thực sự nghĩ về cách tốt nhất để "lên lịch" hoạt động trên tập hợp nhỏ nhất các tham số liên quan.

Đó là một trải nghiệm khá khó khăn, nhưng nó cũng thực sự bổ ích khi trải nghiệm thành công. Chúng tôi cảm thấy giống như một trình biên dịch của con người sau đó ..

Chúc may mắn!

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