W ostatnim pytaniu (How to define (and name) the corresponding safe term comparison predicates in ISO Prolog?) @false poprosił o implementację terminu zamawiania predykatu lt/2
, wariant ISO wbudowanego (@<)/2
.Testowanie predykatu "Rzędu bezpiecznego"
Prawdziwa wartość lt(T1,T2)
ma być stabilna w.r.t. dowolne zmienne wiązania w T1
i T2
.
W różnych odpowiedziach zaproponowano różne implementacje (oparte na ukrytym/niejawnym przewijaniu terminów). Niektóre zastrzeżenia i wskazówki zostały podniesione w komentarzach, tak samo jak kontrprzykłady.
Moje pytanie: jak można testować wdrożenia kandydatów? Jakieś brutalne podejście? Lub coś mądrzejszego?
W każdym przypadku prosimy o udostępnienie automatycznych maszyn testujących dla lt/2
! To jest dla większego dobra!
Istnieje już 400 nagród za pokrewne pytanie. – false