Tôi đã tìm thấy câu hỏi này về các chức năng đặc biệt "hoặc" trong chương trình:Tại sao tôi không thể xác định "hoặc chức năng" trong lược đồ?
Joe Hacker tuyên bố ầm ĩ mà không có lý do hoặc trong Đề án cần phải được đặc biệt - nó chỉ có thể được xác định bởi các lập trình viên, như thế này:
(define (or x y) (if x #t y))
Joe có đúng không?
Tôi không thể hiểu tại sao không nên làm điều đó.
Có thể một số chuyên gia về chương trình vui lòng giải thích nếu công trình này hoạt động và nếu không: tại sao không?
Tôi không biết bạn đang sử dụng cuốn sách nào để tìm hiểu Đề án, vì vậy tôi phải đi đến [đặc tả ngôn ngữ của Đề án] (http://www.r6rs.org/final/html/r6rs/r6rs-ZH -14.html # node_sec_11.4.5). Nếu không có s, #f được trả về, nếu không, biểu thức được đánh giá từ trái sang phải cho đến khi một số trả về giá trị thực (xem mục 5.7) hoặc số cuối cùng. hoặc biểu thức trả về val mà không đánh giá các biểu thức còn lại. Trong trường hợp thứ hai, biểu thức cuối cùng được đánh giá và các giá trị của nó được trả về. " Chức năng 'hay' của Joe có hoạt động theo cách này không? –
http://www.cs.washington.edu/education/courses/cse341/99wi/scheme/mini-exercises.html –
Nhân tiện, nó * có thể * được định nghĩa bởi lập trình viên, nhưng không phải là một hàm đơn giản. Nó không đặc biệt cho một số giá trị đặc biệt. http://www.scheme.com/tspl4/further.html#defn:or – erjiang