Có ai xây dựng một quine ("Một chương trình tạo ra một bản sao của văn bản nguồn của nó như là sản lượng hoàn chỉnh của nó": http://www.nyx.net/~gthompso/quine.htm) trong R? (The [Quine] tag kéo lên rất nhiều ví dụ bằng Python, Java, ... nhưng dường như không ai trong R.)Xây dựng quines (chức năng tự tái tạo)
f <- function() { body() }
đến gần:
> f()
{
body()
}
nhưng lại thiếu tên của hàm .
Làm thế nào về khả năng ngắn nhất? Hầu hết các obfuscated?
chỉnh sửa: từ sự đa dạng của câu trả lời dưới đây, có vẻ như có rất nhiều cách khác nhau để xác định tự tham chiếu qua và môi trường mà nó phải xảy ra:
- trong môi trường R: chức năng
->
chức năng (@ bill_080) - trong môi trường hệ điều hành/vỏ: chương trình
->
chương trình [ít nhiều tương đương với chương trình->
văn bản]: (@kohske) - khác: chức năng
->
văn bản (@JoshUlrich, @ James, vấn đề như d efined trên)
Ghi chú:
- Các thread from R-help pointed out by @Spacedman (mà dường như để nhấn mạnh obfuscation qua ngắn gọn) gợi ý rằng
identical(quine,quine())
là một trường hợp thử nghiệm tốt, mặc dù nó khó khăn vì môi trường được thực hiện cùng:identical(quine,quine(),ignore.environment=TRUE)
sức dễ dàng hơn. - Một gần đây (tháng 10 năm 2015) blog post cung cấp câu trả lời khác ...
Nhưng 'f() <- function() ...' là lỗi. –
@Joshua Ulrich Rất tiếc, đã sửa nó ngay bây giờ. Như một phần thưởng thêm, độ phức tạp thêm vào làm cho nó dễ đọc hơn và do đó bị làm xáo trộn hơn! ;) – James