Trong thử thách này, bạn phải viết một chương trình hoặc hàm, lấy một chuỗi làm đầu vào và xuất một trong hai giá trị có thể. Chúng tôi sẽ gọi một trong những giá trị truthy và một falsy . Họ không cần phải thực sự là truthy hoặc falsy . Để một câu trả lời có giá trị, nó phải đáp ứng bốn tiêu chí bổ sung
Khi bạn vượt qua chương trình của bạn để bản thân nó xuất ra truthy giá trị.
Nếu bạn chuyển chương trình của mình làm đầu vào cho bất kỳ câu trả lời cũ nào, nó sẽ xuất đầu ra trung thực (của chương trình bạn đang chuyển đến).
Nếu bạn chuyển bất kỳ câu trả lời cũ nào cho câu trả lời của bạn dưới dạng đầu vào, nó sẽ xuất ra đầu ra sai lệch (của chương trình của bạn).
Phải có một số vô hạn các chuỗi đánh giá để truthy sản lượng trong tất cả các câu trả lời về thách thức (trong đó có câu trả lời mới của bạn).
Điều này sẽ làm là nó sẽ từ từ xây dựng một chuỗi các câu trả lời mà mỗi câu trả lời có thể xác định xem các chương trình khác trong chuỗi đến trước hay sau nó.
Mục tiêu của thử thách này là xây dựng một danh sách các hạn chế nguồn được áp dụng cho các câu trả lời liên tiếp làm cho mỗi câu hỏi trở nên khó khăn hơn lần trước.
Thí dụ
Một chuỗi (được viết bằng Haskell) có thể bắt đầu:
f _ = True
Vì không có chương trình cũ hơn, nên các tiêu chí không áp dụng cho câu trả lời này, nó chỉ cần xuất một trong hai giá trị có thể, trong trường hợp này nó luôn xuất ra True
.
Sau đây có thể là câu trả lời:
f x=or$zipWith(==)x$tail x
Mà khẳng định rằng có một ký tự hai lần liên tiếp ở đâu đó trong chuỗi. Câu trả lời đầu tiên không có thuộc tính này trong khi câu trả lời thứ hai không ( ==
). Vì vậy, đây là một câu trả lời tiếp theo hợp lệ.
Quy tắc đặc biệt
Bạn có thể sử dụng bất kỳ ngôn ngữ nào bạn muốn (có triển khai miễn phí) bao nhiêu lần bạn muốn.
Nếu bạn là người cuối cùng trả lời, bạn phải đợi ít nhất 7 ngày trước khi đăng câu trả lời mới.
Chương trình của bạn có thể không đọc nguồn riêng của nó.
Vì quy tắc thứ 4 cực kỳ khó xác minh nếu các chức năng mã hóa có liên quan, các chức năng đó không được phép.
Tiêu chí chấm điểm
Mỗi lần bạn thêm một câu trả lời, bạn sẽ nhận được nhiều điểm như vị trí của nó trong chuỗi. Ví dụ, câu trả lời thứ 5 sẽ đạt được 5 điểm. Mục tiêu là để có được càng nhiều điểm càng tốt. Câu trả lời cuối cùng sẽ ghi điểm người trả lời-điểm. Điều này có lẽ sẽ vui hơn nếu bạn cố gắng tối đa hóa điểm số của chính mình thay vì "chiến thắng" thử thách. Tôi sẽ không chấp nhận một câu trả lời.
Vì đây là câu trả lời, bạn có thể muốn sắp xếp theo thứ tự cũ nhất