Prolog 99 題再度闖關:單元測試

找工作的日子中,感到清閒。除了規劃前途之外,我開始想要重新把 Prolog 99 則問題解決掉。 P-99 是一位老師 Werner Hett 在好幾年的教學中,所累積的 Prolog 問題集,其內容包含了程式語言的入門題目,資料結構,以及集合論、圖論等方面的大型問題。

下圖呈現出我的解題畫面,以單元測試組織每一件問題的計算及檢驗。完整程式放在我的 github.com 空間

P-99 Unit Test

圖說:用單元測試的技巧,寫 P-99 的解答。

我所寫的 Prolog 單元測試的核心程式,如下表所示。由於 Prolog 程式本來都是在討論邏輯與是非,所以,單元測試的架構很簡單。

unit_test :-
 case(List),
 format('Unit test start.~n'),
 assert_all(List),
 halt.
assert_all([]) :-
 format('Unit test done.~n').
assert_all([G|List]) :- callable(G), G, !,
 format('~p passed.~n', [G]),
 assert_all(List).
assert_all([G|_]) :-
 format('~p did not pass.~n', [G]).

我喜歡像 Prolog 這樣的邏輯程式語言,也很喜歡類似的函數式程式語言。寫程式的過程,是直接在關心著數值的計算或邏輯的組成是否符合嚴謹的數理格式。

廣告

About 黃耀賢 (Yau-Hsien Huang)

熱愛 Erlang ,並且有相關工作經驗。喜歡程式語言。喜歡邏輯。目前用 Python 工作。
本篇發表於 Prolog 並標籤為 。將永久鏈結加入書籤。