Gần đây tôi đã tái cấu trúc các đoạn mã lớn và thay thế chúng bằng các truy vấn Linq.
Xóa bỏ sự thiên vị ngôn ngữ - Linq về cơ bản là một tập hợp các hoạt động của Map / Filter và Giảm hoạt động trên một chuỗi dữ liệu.
Điều này khiến tôi suy nghĩ, về mặt lý thuyết tôi sẽ có thể chịu đựng điều này. Tôi có thể viết lại toàn bộ cơ sở mã thành một chuỗi (hoặc thậm chí là một) các hoạt động của Map / Filter và Giảm bớt.
Thật không may, tôi được trả tiền để làm những thứ hữu ích, vì vậy tôi không thể thử nghiệm nhiều hơn nữa, nhưng tôi không thể nghĩ ra bất kỳ cấu trúc mã nào không thể được cấu trúc lại như vậy. Mã hiệu ứng phụ có thể được xử lý thông qua các đơn vị .. Ngay cả đầu ra về cơ bản là ánh xạ các địa chỉ bộ nhớ thành địa chỉ màn hình.
Có bất cứ điều gì không thể (về mặt lý thuyết) được viết lại như một truy vấn Linq không?
my_list.map(_ignored => a copy of my_list)
, có vẻ như việc sử dụng không gian của một chương trình như vậy bị giới hạn bởi một số đa thức (tùy thuộc vào độ dài chương trình). Sau đó, một ngôn ngữ như vậy chắc chắn không thể tính toán các vấn đề không có trong PSPACE. Tuy nhiên, vì nhiều vấn đề trong PSPACE được coi là khó hiểu, nên không nói gì về các lớp lớn hơn, đây có thể không phải là một hạn chế rất nghiêm trọng.