Lý lịch
Lấy cảm hứng từ sự giải thích rất thuận tiện của Octave (và, bằng cách mở rộng, MATL) về các ma trận trung thực / giả mạo, Jelly có nguyên tử Ȧ (kiểu Octave tất cả ).
Lấy một mảng làm đầu vào và trả về 1 nếu mảng không trống và không chứa số 0 (số nguyên, số float hoặc số phức) ở bất cứ đâu trong cấu trúc cây ; mặt khác, nó trả về 0 .
Ví dụ: mảng [[]] là trung thực vì nó không trống và không chứa số 0, nhưng [[0]] là sai vì nó chứa 0 ở mức trong cùng.
Bài tập
Trong ngôn ngữ lập trình bạn chọn, hãy viết một chương trình đầy đủ hoặc một hàm có một dãy số nguyên có thể trống, có thể bị lởm chởm làm đầu vào và in hoặc trả về giá trị trung thực hoặc sai lệch cho biết Ȧ sẽ trả về 1 hoặc 0 , tương ứng.
Trình của bạn phải tuân thủ các quy tắc sau đây.
Các giá trị trung thực và sai lệch phải nhất quán cho tất cả các đầu vào , nghĩa là, tất cả các mảng mà Ȧ trả về 1 phải ánh xạ tới cùng một giá trị trung thực và tất cả các mảng mà Ȧ trả về 0 phải ánh xạ tới cùng một giá trị giả.
Vì các chương trình đầy đủ chỉ có thể lấy các biểu diễn chuỗi của mảng làm đầu vào, nên điều này được cho phép. Tuy nhiên, bạn phải sử dụng đại diện canocical của ngôn ngữ của bạn, như được trả lại bởi
repr
hoặc tương tự.Cụ thể, bạn không thể cho rằng phần tử đầu tiên của mảng sẽ được bắt đầu bằng khoảng trắng.
Nếu (và chỉ nếu) ngôn ngữ của bạn không thể biểu diễn các mảng bị lởm chởm, bạn có thể lấy một chuỗi đại diện của đầu vào, sử dụng cú pháp chính tắc của bất kỳ ngôn ngữ lập trình nào trước đó.
Nếu ngôn ngữ của bạn có một số cách biểu diễn các mảng lởm chởm (ví dụ: danh sách và bộ dữ liệu), bạn chỉ phải hỗ trợ một trong số chúng.
Nếu ngôn ngữ của bạn có tích hợp sẵn, bản thân nó là một bài nộp hợp lệ cho thử thách này, bạn không được sử dụng nó trong câu trả lời của mình . Tất cả các tích hợp khác được cho phép.
Bạn được khuyến khích đăng câu trả lời bằng cách sử dụng cả thao tác mảng và chuỗi, ngay cả khi cái này ngắn hơn đáng kể so với cái kia.
Tất cả các quy tắc golf-golf tiêu chuẩn được áp dụng.
Có thể mã ngắn nhất trong byte giành chiến thắng!
Trường hợp thử nghiệm thật
[1]
[10]
[[]]
[[[[1]]]]
[[], [1], [1, 2]]
[[1], [1, [2]], [1, [2, [3]]]]
[[8], [8, [9]], [8, [9, [10]]]]
Trường hợp thử nghiệm giả
[]
[0]
[0, -1]
[-1, 0]
[[[[0]]]]
[[0], [1, 2], [3, 4, 5]]
[[8], [8, [9]], [8, [9, [1, 0]]]]
[-1, 0, 0, 0]
Object
... yêu thích của tôi là Haskell, nơi không có ngôn ngữ . Cũng không phải trong C, ít nhất là không phải theo cách cho phép bạn trộn các mảng và int một cách an toàn. Cả hai ngôn ngữ này đều có khả năng hoàn hảo với các mảng lởm chởm, nhưng vẫn không thể sử dụng chúng cho vấn đề này.