2011-12-17 9 views
25

Trong History of Lisp, McCarthy viết:John McCarthy có ý nghĩa gì bởi * lập trình khiêu dâm *?

Sự xuất hiện bất ngờ của một thông dịch viên có xu hướng đóng băng các hình thức ngôn ngữ, và một số các quyết định thay lightheartedly cho môi trường ` 'hàm đệ quy ... '' giấy sau đó tỏ ra không may. Chúng bao gồm ký hiệu COND cho các biểu thức có điều kiện dẫn đến độ sâu không cần thiết của dấu ngoặc đơn và việc sử dụng số không để biểu thị danh sách rỗng NIL và giá trị true false. Bên cạnh việc khuyến khích lập trình khiêu dâm, đưa ra một giải thích đặc biệt cho địa chỉ 0 đã gây ra những khó khăn trong tất cả các triển khai tiếp theo.

Anh ấy đang nói về cái gì?

Trả lời

18

Thực tế là có quá nhiều chi tiết thực hiện được rò rỉ ở một mức độ cao hơn, tức là hiển thị quá nhiều

+0

Sẽ * lập trình khiêu dâm * sau đó là bất kỳ mã nào đạt đến mức độ ngữ nghĩa thích hợp của nó, như lắp ráp nội tuyến? –

+16

Điều đó có vẻ hợp lý: Mã sử ​​dụng * kiến ​​thức thân mật *. –

+2

Tôi lol'd ... "tiết lộ các cá nhân của bạn" – csauve

6

Có lẽ đó là cách nói về null references: the billion dollar mistake (T. Hoare).

+1

Đó có thể là một phần của nó, nhưng tôi hy vọng sẽ có một ví dụ gần hơn đến năm 1958 (thời gian được thảo luận trong phần đó của bài báo). –

6

Tôi nghĩ rằng đó là về trộn các giá trị số và logic, mà vẫn có thể được nhìn thấy trong các cấu trúc phổ biến, có lẽ có nguồn gốc từ Fortran, như while (1). Có rất nhiều thuật toán C "thông minh", dựa trên thực tế, rằng 0 là sai và mọi giá trị khác không phải là. Điều này cũng áp dụng cho các cuộc gọi API, như trong hạt nhân POSIX hoặc Linux, một số trong số đó trả về 0 khi thất bại, trong khi một số -1 (có quy tắc chung, khi áp dụng, nhưng nó chỉ là văn hóa dân gian, thường xuyên nó bị hỏng). Xem xét thực tế, rằng tại thời điểm của McCarthy, những điều đó chưa được phát triển, bạn có thể thấy sức mạnh "tiên tri" của mình ngay cả ở đây.

19

... zero để biểu thị danh sách trống ...

0==() đã trở thành biểu tượng cảm xúc cho nội dung khiêu dâm từ năm 1958.

Bây giờ bạn biết.

+1

Rất đẹp, một trong những bài đăng SE hài hước nhất.Ngoài ra, hãy xem [this] (http://math.stackexchange.com/a/74348/86776), [this] (http://math.stackexchange.com/a/54568/86776) và [this] (http: //math.stackexchange.com/questions/689619/how-to-find-the-equation-of-one-curve-in-xy-plan-which-satisfies-such-functions). :-) – mvw

9

Tài liệu gốc Fortran III ban đầu, một giấy kỹ thuật được phổ biến vào mùa đông năm 1958 mô tả một số bổ sung rất rõ ràng cho ngôn ngữ Fortran II, bao gồm ... lắp ráp nội tuyến.

PDF là here

Một mô tả trêu ngươi của "bổ sung" sau:

Extract from I.,Ziller, Additions to Fortran II, 1958

Một số mã điều cấm kỵ là

Pornographic programming using the un-released Fortran III

một cách bí ẩn, Fortran-III là never released to the public (see section 5.), nhưng phổ biến trong thời trang giới hạn b efore lặng lẽ biến mất.

+0

Tuyệt vời. Kịp thơi! –

+0

wow cảm ơn! Tiền thưởng tiền thưởng đầu tiên của tôi –

+0

Bạn được chào đón. Cảm ơn bạn đã đào bài này! Tôi sắp để tiền thưởng hết hạn. –