]> Repositorios git - scryer-prolog.git/commitdiff
eliminate unnecessary find_min_time_ predicate in least_time.pl example
authorMark Thom <[email protected]>
Thu, 11 Jun 2020 04:25:23 +0000 (22:25 -0600)
committerMark Thom <[email protected]>
Thu, 11 Jun 2020 04:25:23 +0000 (22:25 -0600)
Cargo.lock
src/prolog/examples/least_time.pl

index 1781792612caba7b1dacdaee52a5b70e225dc179..086a638e7f788e4dbdeeb2beeff70f17bcd82a56 100644 (file)
@@ -125,6 +125,17 @@ version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
 
+[[package]]
+name = "chrono"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
+dependencies = [
+ "num-integer",
+ "num-traits 0.2.11",
+ "time",
+]
+
 [[package]]
 name = "cloudabi"
 version = "0.0.3"
@@ -738,7 +749,9 @@ dependencies = [
 
 [[package]]
 name = "prolog_parser"
-version = "0.8.62"
+version = "0.8.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fa8dbe0881bcc9a247db279802701d87bbe9d4c6604bb0e5cad3dd3314f241d"
 dependencies = [
  "lexical",
  "num-rug-adapter",
@@ -930,9 +943,10 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
 name = "scryer-prolog"
-version = "0.8.125"
+version = "0.8.126"
 dependencies = [
  "blake2",
+ "chrono",
  "cpu-time",
  "crossterm",
  "dirs",
@@ -1094,6 +1108,16 @@ dependencies = [
  "winapi 0.3.8",
 ]
 
+[[package]]
+name = "time"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
+dependencies = [
+ "libc",
+ "winapi 0.3.8",
+]
+
 [[package]]
 name = "typenum"
 version = "1.12.0"
index 100c68d5b6de5174021a052ae7e4ee8e33132b78..b93f0b5e4cd3c9375702c7727e4b813d760c7f6f 100644 (file)
  */
 
 :- module(least_time, [find_min_time/2,
-                      write_time_nl/1]).
+                              write_time_nl/1]).
 
 
 :- use_module(library(dcgs)).
 :- use_module(library(format)).
+:- use_module(library(lists)).
 :- use_module(library(reif)).
 
 
@@ -32,10 +33,10 @@ valid_time([H1,H2,M1,M2], T) :-
     memberd_t(M2, [0,1,2,3,4,5,6,7,8,9], TM2),
     (  maplist(=(true), [TH1, TH2, TM1, TM2]) ->
        (  H1 =:= 2 ->
-         (  H2 =< 3 ->
-            T = true
-         ;  T = false
-         )
+             (  H2 =< 3 ->
+                T = true
+             ;  T = false
+             )
        ;  T = true
        )
     ;  T = false
@@ -49,15 +50,7 @@ permuted_times(Time, PermutedTimes) :-
 
 find_min_time(Time, Min) :-
     valid_time(Time, true),
-    permuted_times(Time, PermutedTimes),
-    find_min_time_(PermutedTimes, Time, Min).
-
-find_min_time_([], Min, Min).
-find_min_time_([Time|Times], MinSoFar, Min) :-
-    (  Time @< MinSoFar ->
-       find_min_time_(Times, Time, Min)
-    ;  find_min_time_(Times, MinSoFar, Min)
-    ).
+    permuted_times(Time, [Min|_]).
 
 
 write_time_nl(Time) :-