如何編寫只包含數字和字母的列表中的數字的Prolog代碼?例如,如果我有[a,b,7,d,3,e,f,5],我想寫代碼給我[7,3,5]。 在此先感謝。prolog:logic programming
1
A
回答
2
你必須編寫一個函數來給你一個列表。在Prolog中不存在返回語句,但您也可以使用參數來指定out事物。
% The second parameter will be our OUT parameter.
% It can be anything that we specify.
% Return an empty list, because our input is empty as well
numFilter([],[]).
% return a list with H and what will come out recursively
numFilter([H|T],[H|T2]) :- number(H), numFilter(T,T2).
% return a list with what will come out recursively. H is not a number
numFilter([H|T],T2) :- not(number(H)), numFilter(T,T2).
因此,您可以爲每種可能發生在您身上的輸入指定規則。我們有一個用於空列表,我們有兩個用於至少有一個元素的列表。第一個元素將被檢查,我們繼續遞歸。
我們可以調用這個函數,像這樣的電話:
numFilter([a,b,7,d,3,e,f,5],A).
的A是將由序言在運行時填寫的變量。 number: 1
是prolog dictionary中的函數。
因此,對於這些類型的任務,您需要爲列表遞歸。請記住。
3
它很容易把這個成的findall:
numList(ListIn, Nums) :-
findall(H, (member(H, ListIn), number(H)), Nums).
查詢有:
?- numList([a,b,7,d,3,e,f,5], Nums).
Nums = [7, 3, 5].
序言的的findall真的是飛馳有用!
相關問題
- 1. Programming fundas
- 2. Matlab ObjectOrientated Programming Vectorize
- 3. XML Programming C#
- 4. getopts in bash programming
- 5. GAMS programming-Defining Subsets
- 6. IN JAVA PROGRAMMING
- 7. The C Programming Language 1.9
- 8. Old School Sound Programming in Python
- 9. Java -Reactive Programming vs Event Listener
- 10. ImportError:No Programming named pysqlite2 code from Programming集體智慧O Reilly by Toby Segaram chapter 4
- 11. 如何在roxygen literate programming中逃避%?
- 12. Scrum和Extreme Programming有什麼區別?
- 13. Head First JavaScript Programming之後是什麼?
- 14. 本書適用於windows phone programming ..?
- 15. The C programming language 2. ed。問題
- 16. Java Socket Programming =>只有IE9的作品?
- 17. Range.to_a在「Programming Ruby」中的示例
- 18. 比較Haskell中的Functional Reactive Programming軟件包
- 19. 你是否在生產軟件中使用AOP(Aspect Oriented Programming)?
- 20. Python中的Functional Reactive Programming的狀態是什麼?
- 21. 爲什麼「Programming Phoenix」-book將「.change1.ex」添加到文件中?
- 22. 自「The C Programming Language」以來發生了什麼變化
- 23. 如何在Mac上安裝Gnat Programming Studio(GPS)?
- 24. 如果使用Functional Oriented Programming,「阻抗不匹配」會消失嗎?
- 25. 「Programming Collective Intelligence」的Pearson算法有什麼問題?
- 26. 如何將結構複製到具有malloc函數的指針[C-Programming]
- 27. Minimax在「Prolog Programming for Artificial Intelligence」中的實現 - 什麼是min_to_move/1和max_to_move/1?
- 28. 從「Programming in Scala」的例子中,隱式轉換是如何實現的?
- 29. 無法爲'/myProject'寫入元數據。(D:\Programming\Java\.metadata\.plugins\org.eclipse.core.resources\.projects\myProject\.ma
- 30. 您是在Google Reader for .NET和Programming/Architecture相關資料中關注的人員?
http://stackoverflow.com/questions/15313626/write-a-prolog-program-displaying-an-mn-grid-of-asterisk – user2152012 2013-03-09 18:51:54