Bây giờ, tất cả chúng ta đều biết hầu hết các ngôn ngữ có những cách rất đơn giản để "tự sửa đổi" mã. Tuy nhiên, điều gì sẽ xảy ra nếu bạn thực sự sửa đổi mã và chỉnh sửa các phần của nó ... trên đĩa?
Mục tiêu của bạn là tạo mã in một số, sau đó chỉnh sửa tệp của chính nó để thay thế số đó bằng mã tiếp theo trong chuỗi Fibonacci như vậy:
$ ./program
1
$ ./program
1
$ ./program
2
$ ./program
3
$ ./program
5
[etc...]
Quy tắc
- Bạn không được lưu trữ số (bên ngoài) của mã. Không có bình luận, không nói cho kịch bản thoát ra, không có EOF, v.v.
- Nếu mã của bạn hoạt động với bất kỳ tên tệp nào, hãy trừ 2 từ số lượng byte của bạn và viết
$BYTESNOW ($ORIGINALBYTES - 2)
tiêu đề của bạn. (Tên tệp được giả sử là nằm trong phạm vi của bất kỳ đường dẫn tệp chữ và số nào.) - Mã của bạn phải tự ghi đầu ra vào tệp mà không cần bất kỳ sự trợ giúp đường ống bên ngoài nào.
- Mã của bạn có thể bắt đầu từ một hoặc không. Nó không thành vấn đề.
perl6 program
), hay nó phải bao gồm dòng shebang để nó có thể được gọi là ./program
?
program
, và chúng ta có thể giả sử nó nằm trong thư mục làm việc hiện tại không?
"a"
thay vì arg[0]
. Nó không có vẻ đáng giá.