如何編寫只包含數字和字母的列表中的數字的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. GAMS programming-Defining Subsets
- 3. IN JAVA PROGRAMMING
- 4. XML Programming C#
- 5. Matlab ObjectOrientated Programming Vectorize
- 6. getopts in bash programming
- 7. The C Programming Language 1.9
- 8. Garbage storage,programming in C
- 9. Java -Reactive Programming vs Event Listener
- 10. Old School Sound Programming in Python
- 11. The C programming language excercise 1 - 13
- 12. STM32 in app programming(IAP),custom bootloader
- 13. ImportError:No Programming named pysqlite2 code from Programming集體智慧O Reilly by Toby Segaram chapter 4
- 14. C programming - void(* ptr [2])()= {blah,blah2};解釋
- 15. 如何在roxygen literate programming中逃避%?
- 16. Range.to_a在「Programming Ruby」中的示例
- 17. Head First JavaScript Programming之後是什麼?
- 18. 計數行「The C Programming Language」K&R
- 19. Scrum和Extreme Programming有什麼區別?
- 20. 本書適用於windows phone programming ..?
- 21. The C programming language 2. ed。問題
- 22. Java Socket Programming =>只有IE9的作品?
- 23. Android Programming with Java,如何使用R.id
- 24. Programming> Extract列表項與列值匹配的行
- 25. 比較Haskell中的Functional Reactive Programming軟件包
- 26. 當試圖運行Anagram(John Bentley-Programming Pearls)時發出警告-C
- 27. 「Programming Collective Intelligence」的Pearson算法有什麼問題?
- 28. 如何使用Dynamic Programming Top Down方法解決此問題?
- 29. Sorting a Dictionary,Programming in C,Stephen Kochan,Chapter 10,Exercise 10
- 30. Python中的Functional Reactive Programming的狀態是什麼?
http://stackoverflow.com/questions/15313626/write-a-prolog-program-displaying-an-mn-grid-of-asterisk – user2152012 2013-03-09 18:51:54