eliminate unnecessary find_min_time_ predicate in least_time.pl example

This commit is contained in:
Mark Thom
2020-06-10 22:25:23 -06:00
parent c82a0b3d2d
commit 791e22dc24
2 changed files with 33 additions and 16 deletions

28
Cargo.lock generated
View 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"

View File

@@ -16,6 +16,7 @@
:- use_module(library(dcgs)).
:- use_module(library(format)).
:- use_module(library(lists)).
:- use_module(library(reif)).
@@ -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) :-