有人可以解釋預定義謂詞forall
應該如何在列表中找到最小值?forall - Prolog
4
A
回答
12
有關列表L
,你可以使用:
member(Min,L), forall(member(N,L), N>=Min).
然而,儘管這是forall
一個很好的示範,它是沒有效率(平方複雜性,而不是線性)。
2
爲什麼要用forall/2
找到最小值?!
對於從列表看看SWI-Prolog的的min_list/2
採摘的最小/最大/ ...元素的標準(線性)解決方案:
?- listing(min_list).
lists:min_list([], A, A).
lists:min_list([A|C], B, E) :-
D is min(A, B),
min_list(C, D, E).
lists:min_list([B|A], C) :-
min_list(A, B, C).
3
,或者您可以使用謂詞的findall/3
findall(Value, minimumValues(Value), minimumValuesList)
它返回一個包含元素(所有最小值,右)的列表(minimumValuesList)。
相關問題
- 1. 即使有FORALL
- 2. FORALL ......保存例外
- 3. PostgreSQL的等效語法FORALL
- 4. Oracle FORALL更新異常
- 5. IF ELSE FORALL內部條件
- 6. 批量收集和ForAll - Oracle
- 7. FORALL平等勒柯克
- 8. Ltac模式匹配:爲什麼`forall x,?P x`不匹配`forall x,x`?
- 9. HashMap forall()方法的Scala示例?
- 10. 繼續走出教堂的FORALL循環
- 11. FORALL與數據構造背景
- 12. FORALL循環中的多個SQL語句
- 13. 性能優化:每個VS FORALL
- 14. PLSQL-如何退出FORALL循環
- 15. 斷言型家庭FORALL平等
- 16. Drools的 - FORALL自蘊不工作
- 17. 如何在swi-prolog中的prolog文件內運行prolog查詢?
- 18. Prolog - IndexofElement
- 19. Prolog中
- 20. 從PROLOG
- 21. Prolog - readterm
- 22. parent_of prolog
- 23. Prolog事實中的存在量化
- 24. prolog pascal triangle
- 25. plld Prolog C++
- 26. Prolog findall existential quantifier
- 27. Prolog - Palindrome Functor
- 28. swi prolog mysql + web
- 29. Prolog Bubblesort Uninstantiated Arguments
- 30. Prolog findall執行