有人可以解釋預定義謂詞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/3用手
- 2. Parallel.ForEach vs AsParallel()。ForAll
- 3. Haskell forall error
- 4. ArrayCollection :: forAll遞歸
- 5. Z3 ForAll陣列
- 6. 即使有FORALL
- 7. Forall語法錯誤
- 8. FORALL ......保存例外
- 9. FORALL插入目標表然後從源表中刪除FORALL
- 10. 在FORALL語句EXECUTE IMMEDIATE
- 11. 批量收集和ForAll - Oracle
- 12. PostgreSQL的等效語法FORALL
- 13. Oracle FORALL更新異常
- 14. FORALL平等勒柯克
- 15. IF ELSE FORALL內部條件
- 16. FORALL vs批量更新
- 17. 立即執行FORALL語句
- 18. Prolog初學者--Macbook
- 19. Ltac模式匹配:爲什麼`forall x,?P x`不匹配`forall x,x`?
- 20. FORALL循環中的多個SQL語句
- 21. 理解`System.ZMQ4.Monadic`的`forall`在簽名
- 22. 在specs2匹配器中結合forall和^^^
- 23. 消除FORALL使用造成不滿意
- 24. PLINQ進行AsParallel()的ForAll()訪問資源
- 25. Forall notation:期間/點是什麼意思?
- 26. 使用`repo forall`列出過期分行
- 27. 繼續走出教堂的FORALL循環
- 28. PLSQL-如何退出FORALL循環
- 29. 斷言型家庭FORALL平等
- 30. 爲什麼在std.parallel中沒有'forall'?