câu trả lời Elogent là tuyệt vời. Có một lý do nữa là sẽ không có ý nghĩa đối với các danh sách có chức năng:
Danh sách đen đã có một vai trò rất quan trọng khác nhau, vì vậy chúng cũng không được coi là hàm theo cách vector.
Hãy bắt đầu với một vectơ chứa hai hàm, partial
và +
và một số, 5
. Chúng tôi có thể coi vectơ là một hàm, như bạn đã biết, để trả về giá trị được lập chỉ mục bởi đối số của nó:
user=> ([partial + 5] 2)
5
Cho đến giờ, rất tốt. Giả sử chúng ta muốn sử dụng một danh sách (partial + 5)
ở vị trí của vector, như bạn đề nghị, để trở về giá trị 5
. chúng tôi sẽ nhận được một thông báo lỗi? Không! Nhưng chúng tôi sẽ không nhận được 5
kết quả là:
user=> ((partial + 5) 2)
7
Điều gì đã xảy ra? (partial + 5)
trở một chức năng - chức năng có thêm 5 đến đối số duy nhất của nó - và sau đó chức năng này được áp dụng cho đối số 2
.
Khi danh sách được đánh giá, phần tử đầu tiên của nó được đánh giá và phải trả về một hàm. Nếu phần tử đầu tiên là một biểu tượng, nó được đánh giá, và sau đó hàm đó là giá trị của nó được áp dụng cho các đối số, đó là các phần tử khác của danh sách. Nếu đối số đầu tiên của một danh sách là chính nó là một danh sách, thì nó được đánh giá theo cùng cách mà nó sẽ được đánh giá nếu nó ở cấp cao nhất. Toàn bộ biểu thức trong danh sách bên trong đó sẽ trả về một hàm, sau đó nó sẽ được áp dụng cho các phần tử khác của danh sách bên ngoài.
Vì danh sách bên trong là yếu tố đầu tiên của danh sách đang được đánh giá đã có vai trò này nên nó cũng không thể phát loại vai trò mà các vectơ là yếu tố đầu tiên phát.
Có sự khác biệt nào giữa danh sách và chuỗi không? –
Chào mừng bạn đến với stackoverflow, Thật khó trả lời các câu hỏi về trạng thái tâm trí của người khác theo cách mà bạn có thể đánh dấu là "đúng" hoặc "không chính xác" để khó trả lời câu hỏi này một cách khách quan. –
@BobJarvis là một giao diện được thực hiện bởi tất cả các loại bộ sưu tập, bao gồm danh sách. –