On 08/07/2013 19:47, Sergii Dymchenko wrote: > Hi, > > I can use ic:element/3 like this: > > [eclipse]: X #>= 2, A = [](10, 20, 30), element(X, A, Z). > X = X{[2, 3]} > A = [](10, 20, 30) > Z = Z{[20, 30]} > > But if A contains float values, I get "type error in Z". > > I've looked at the source code of element/3 and found that it does some complicated stuff that > makes sense only if values are integers. > Any suggestions how to make ic:element/3 work with float values (maybe in some surrogate form)? Using lib(ic) and lib(propia): ?- member(I - F, [1 - 11.1, 2 - 22.2, 3 - 33.3]) infers ic. I = I{1 .. 3} F = F{11.1 .. 33.3} There is 1 delayed goal. Yes (0.00s cpu) ?- member(I - F, [1 - 11.1, 2 - 22.2, 3 - 33.3]) infers ic, I #> 1. I = I{[2, 3]} F = F{22.2 .. 33.3} There is 1 delayed goal. Yes (0.00s cpu) ?- member(I - F, [1 - 11.1, 2 - 22.2, 3 - 33.3]) infers ic, F $>= 20. I = I{[2, 3]} F = F{22.2 .. 33.3} There is 1 delayed goal. Yes (0.00s cpu) Cheers, JoachimReceived on Tue Jul 09 2013 - 13:02:44 CEST
This archive was generated by hypermail 2.3.0 : Wed Sep 25 2024 - 15:13:20 CEST