Có cách nào để xác định loại phần tử trong danh sách trong Prolog không? Tôi biết rằng các biến không được nhập một cách rõ ràng trong Prolog, nhưng tôi cần phải kiểm tra xem một phần tử là một số, một ký tự cụ thể, vv Làm thế nào điều này có thể được thực hiện?Kiểm tra loại Prolog
Trả lời
Prolog định nghĩa một nhóm các vị từ built-in cho mục đích thử nghiệm loại: var/1
, atom/1
, integer/1
, float/1
, atomic/1
, compound/1
, nonvar/1
, number/1
, tất cả chúng với một ý nghĩa tự giải thích nếu bạn biết các kiểu dữ liệu của ngôn ngữ. Đối với các ký tự cụ thể, bạn có thể khai thác sự hợp nhất với ký tự đó, sau khi kiểm tra xem phần tử đó không phải là biến tự do hay không (nếu không thống nhất luôn thành công).
số/1
Chưa hoàn tất, không trả lời "nhưng tôi cần kiểm tra xem phần tử là một số, một ký tự cụ thể, v.v ...". – Junuxx
Bạn có thể thử mã này:
isList([_|_]).
isList([]).
Hy vọng nó giúp.
để kiểm tra danh sách bạn có thể thử:
listing(is_list/1, list_functor/1).
is_list(X) :-
functor(X, F, _),
list_functor(F).
list_functor('.').
list_functor('[]').
Để kiểm tra xem một biến được ràng buộc vào một danh sách, bạn có thể sử dụng is_list/1
.
- 1. Kiểm tra loại biến
- 2. Loại kiểm tra trong C++
- 3. DynamicMethod và loại kiểm tra
- 4. Python "in" không kiểm tra loại?
- 5. Scala bình đẳng với kiểm tra loại?
- 6. OCaml: Loại đối tượng kiểm tra
- 7. C# kiểm tra chính xác loại
- 8. kiểm tra xem thể hiện loại
- 9. Kiểm tra loại có nguồn gốc (C++)
- 10. Kiểm tra loại biến trong FreeMarker
- 11. Kiểm tra loại nút trong mẫu XSL
- 12. Kiểm tra Loại Chức năng trong Scala
- 13. Loại trừ tệp khỏi kiểm tra stylecop
- 14. Trình kiểm tra loại cho JavaScript?
- 15. Kiểm tra NSURL cho loại tệp UTI/
- 16. Kiểm tra loại liên kết trong Sitecore
- 17. Kiểm tra loại ngoại lệ bên trong
- 18. Kiểm tra loại Rust enum bằng boolean?
- 19. Kiểm tra đường ray cho loại băm
- 20. Cách kiểm tra loại thông số mẫu?
- 21. kiểm tra loại enum trong C/gcc
- 22. Loại bỏ giới hạn mảng Haskell kiểm tra loại Bounded?
- 23. Loại java là loại ngoại lệ được kiểm tra?
- 24. Kiểm tra cho các loại hình kiểm soát
- 25. Prolog: Làm cách nào để kiểm tra xem một biến vị ngữ có tồn tại không?
- 26. Định nghĩa kiểu Prolog trong swi-prolog
- 27. Subsets trong Prolog
- 28. Vấn đề PROLOG đơn giản: Làm thế nào để bạn kiểm tra nhiều truy vấn đối với cơ sở dữ liệu Prolog của bạn?
- 29. Cách kiểm tra loại hiện tại (đối tượng Loại) có cần giao diện (hoặc loại gốc)
- 30. Loại suy luận/kiểm tra loại lỗi khi sử dụng tính toán mức loại
Đối với các loại phức tạp hơn so với nguyên thủy, bạn có thể xem cơ chế xử lý hồ sơ SWI_PROLOG (http://tinyurl.com/2gy53rr). Điều này sẽ cho phép bạn thể hiện các loại hợp chất với các trường accessor được đặt tên và sẽ tự động tạo tất cả các biến vị ngữ kiểm tra kiểu cho bạn, với một đặc tả bản ghi. Rất hữu dụng! – sharky