Trong Lisp chung, nếu tôi muốn kiểm tra xem một danh sách không phải là null, tôi chỉ có thể sử dụng danh sách như là điều kiện, vì tất cả các danh sách không phải là nil được coi là đúng. Tuy nhiên, tôi thấy rằng trong Đề án, làm như vậy sẽ làm cho Đề án nghĩ rằng tôi đang cố gắng gọi một hàm. Có cách nào tốt hơn để kiểm tra xem một danh sách có rỗng trong Đề án hay không để xác định một hàm khác là (not (null? x))
?Cách tốt nhất để kiểm tra xem một danh sách không phải là null?
6
A
Trả lời
7
Trong Đề án, mọi thứ không phải là #f
là trung thực, do đó, '()
được coi là #t
trong câu hỏi if
.
Như vậy,
(if '() "true" "false") => "true"
(not '()) => #f
Sử dụng (not (null? x))
là cách đơn giản nhất của việc kiểm tra nếu một danh sách không phải là null: nó mô tả chính xác những gì bạn muốn, và trong trường hợp góc nơi bạn đang đưa ra một cái gì đó không phải là một danh sách , nó sẽ cung cấp cho bạn hành vi khác nhau:
(if (not (null? #t)) "true" "false") => "true"
(if (not #t) "true" "false") => "false"
4
Nếu bạn biết rằng đó là danh sách, bạn có thể sử dụng (pair? x)
, vì mỗi danh sách là một cặp hoặc '()
.
Các vấn đề liên quan
- 1. Cách tốt nhất để kiểm tra xem danh sách thả xuống có chứa giá trị không?
- 2. Kiểm tra xem đối tượng có phải là danh sách các danh sách trong python không?
- 3. Cách tốt nhất để kiểm tra xem Biến có phải là không?
- 4. Cách tốt nhất để kiểm tra xem một đối tượng có phải là một mảng hay không trong Javascript?
- 5. Thuật toán tốt nhất để kiểm tra xem danh sách được liên kết có chu kỳ
- 6. Làm thế nào để kiểm tra xem một phần tử của danh sách có phải là một danh sách (bằng Python) không?
- 7. Cách tốt nhất để kiểm tra xem tùy chọn hiện được chọn trong danh sách thả xuống có phải là tùy chọn cuối cùng không?
- 8. Cách tốt nhất để kiểm tra xem một Type là một bộ sưu tập
- 9. Cách tốt nhất để kiểm tra tập kết quả IQueryable là null
- 10. Kiểm tra xem danh sách có trống không với LINQ
- 11. Cách tốt hơn để kiểm tra xem chuỗi có phải là số nguyên trên iPhone không?
- 12. Cách tốt nhất để kiểm tra tham số chức năng: Kiểm tra null hoặc try/catch
- 13. Tại sao phải kiểm tra xem (* argv == NULL)?
- 14. Cách tốt nhất để kiểm tra xem cặp đôi có phải là số nguyên trong C# không?
- 15. Làm cách nào để kiểm tra xem chức năng có phải là một phần không?
- 16. Kiểm tra xem không phải là không trước khi gửi một thông báo phát hành tốt?
- 17. Kiểm tra xem đối tượng có phải là ví dụ của Danh sách <Object>
- 18. Cách kiểm tra xem đối tượng có phải là một mảng của một loại nhất định
- 19. Kiểm tra xem đây có phải là
- 20. Cách tốt nhất để kiểm tra đơn vị một phương pháp không đồng bộ là gì?
- 21. Cách được khuyến nghị để kiểm tra xem danh sách có phải là danh sách các số trong đối số của hàm không?
- 22. Cách tốt nhất để sao chép danh sách là gì?
- 23. Python: Cách thanh lịch để kiểm tra xem có ít nhất một regex trong danh sách khớp với một chuỗi
- 24. Cách kiểm tra xem một dòng có một trong các chuỗi trong danh sách không?
- 25. cách nhanh chóng để kiểm tra xem một chuỗi ký tự không phải là số
- 26. Cách tốt nhất để kiểm tra javascript là gì?
- 27. Cách tốt nhất để kiểm tra RedirectToAction là gì?
- 28. Cách tốt nhất để kiểm tra xem hôm nay là ngày đầu tiên của tháng
- 29. Kiểm tra xem getJSONArray là null hay không
- 30. Cách tốt nhất để kiểm tra xem System.Type là một hậu duệ của một tầng lớp nhất định
Ý của bạn là gì 'sẽ làm cho Đề án nghĩ rằng tôi đang cố gọi một hàm'? – leppie
@leppie Scheme phàn nàn nếu tôi sử dụng một danh sách (được chuyển thành tham số hàm) như một điều kiện. Tôi tra cứu đơn khiếu nại trên Google và rõ ràng Scheme đang cố gắng gọi hàm với tên của mục đầu tiên trong danh sách và vì chức năng đó không tồn tại, Đề án than phiền – wrongusername
Âm thanh như bạn không trích dẫn danh sách, iow ' (1 2 3) 'vs' '(1 2 3) 'với cái sau là đúng. danh sách trống cũng cần phải được trích dẫn, iow ''()'. – leppie