summaryrefslogtreecommitdiff
path: root/gcd.pro
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2011-02-11 18:30:37 +0300
committerIgor Pashev <pashev.igor@gmail.com>2011-02-11 18:30:37 +0300
commit3166b45e610d6defacf66a67b850f978dd7f2634 (patch)
tree3b8f6b7f297f9f2abf47ddd80bff59ee97366b51 /gcd.pro
parentfdb4312b8ff26fdb38962a5972819c8d01f813e0 (diff)
downloadgcd-3166b45e610d6defacf66a67b850f978dd7f2634.tar.gz
Prolog: command line interface
Diffstat (limited to 'gcd.pro')
-rw-r--r--gcd.pro28
1 files changed, 14 insertions, 14 deletions
diff --git a/gcd.pro b/gcd.pro
index 64eee3c..56041a4 100644
--- a/gcd.pro
+++ b/gcd.pro
@@ -1,12 +1,9 @@
-% Synopsis:
-% # gplc gcd.pro
-% # ./gcd
-% | ?- gcd2(22, 121, 11).
-% | ?- gcd2(22, 121, X).
-% | ?- gcdn([22, 33], 11).
-% | ?- gcdn([22, 33, 44], 11).
-% | ?- gcdn([22], 11).
-% | ?- gcdn([22, 33, 44], B).
+% SYNOPSIS.
+%
+% Tested with GNU Prolog 1.3.1
+%
+% # gplc --no-top-level gcd.pro
+% # ./gcd 22 33 44 121
% 1st number, 2nd number, GCD
@@ -24,12 +21,15 @@ gcdn(A, [B|Bs], G) :- gcd2(A, B, N), gcdn(N, Bs, G).
gcdn([A|As], G) :- gcdn(A, As, G).
% http://www.gprolog.org/manual/html_node/gprolog008.html#toc9
-%:- initialization(main).
+:- initialization(main).
+str2int([], []).
+str2int([S|St], [N|Nt]) :- number_atom(N, S), str2int(St, Nt).
% http://www.fraber.de/bap/bap76.html
-%main :-
-% argument_list(Args),
-% gcdn(Numbers, G),
-% write(G), nl.
+main :-
+ argument_list(Args),
+ str2int(Args, Numbers),
+ gcdn(Numbers, G),
+ write(G), nl.