tôi đang học Guile Đề án vào lúc này, và trong tài liệu tôi đột nhiên chạy vào việc xây dựng sau đây:Khi nào sử dụng định nghĩa lambda với tham số chính thức "trần"?
((lambda args (display args)) 42)
=> (42)
này đã ném tôi cho một vòng lặp; cho đến thời điểm này tôi đã thông số chính thức đảm nhận luôn kèm theo trong một danh sách:
((lambda (args) (display args)) 42)
=> 42
Tôi tự hỏi khi nào thì sử dụng biến thể này, và cách này khác với ký hiệu dấu chấm cho số biến của các đối số. Cụ thể, sự khác biệt giữa hai phiên bản sau là gì:
((lambda args (display args)) 1 2 3) => (1 2 3)
((lambda (. args) (display args)) 1 2 3) => (1 2 3)
Có một sự khác biệt - có lẽ ví dụ phức tạp hơn - mà tôi cần phải nhận thức được và có lý do nào để thích một trong khác không?
Như một phần thưởng, định nghĩa của 'danh sách' là '(định nghĩa danh sách (lambda xx))'. – erjiang