Reading the docs: : (help '==) > ======================================== > (== 'any ..) -> flg > Returns T when all any arguments are the same (pointer equality). See also > n== > and Comparing. > > ======================================== > You are checking pointer equality once the number is big enough to spill into a different cell they are no longer pointer equal
> : (help '=) > ======================================== > (= 'any ..) -> flg > Returns T when all any arguments are equal (structure equality). See also > Comparing. > > ======================================== > Is what you want On Sun, 19 Dec 2021 at 23:32, Jimmie Houchin <jlhouc...@gmail.com> wrote: > I am exploring PicoLisp again after several years. The idea of PicoLisp is > so very appealing. It is getting my reality to fit in its idea. > > I have revisited my original problem from this thread. > > https://www.mail-archive.com/picolisp@software-lab.de/msg07561.html > > > At that time I still could not get the PicoLisp version to numbers to be > equivalent with all other platforms I tested. > > ... > > (de loop1calc (I J N) > (let V (*/ N (+ I N) (- J N) 0.1234567 `(* 1.0 1.0 1.0)) > (normalize (*/ V V V `(* 1.0 1.0)) ) ) ) > > (de loop2calc (I J N) > (normalize > (*/ N > (+ J 1.0) > (+ N N N) > 0.1234567 > `(* 1.0 1.0 1.0) ) ) ) > > ... > > > When I reverse the names of these functions. What is normally loop2calc > produces the same results as the other implementations. So it is what is > the loop1calc function that is bringing the difference. > > So I began to add print statements to the loop to discover the values. > > (if (= I 1.0) ... ) > > > I have (scl 17) in my current file. > > I wanted to see what was at the end of the looping and I did (if (= I > 100.0) ... ) to get the last loop and printed nothing. However when I did > (if (> I 99.0) ... ) it printed some values for loop 100.0. > > So I began to play in the repl to try understand some things. > > > : (== 1.0 1.0) > -> T > : (== 10.0 10.0) > -> T > : (== 100.0 100.0) > -> T > : (scl 5) > -> 5 > : (== 1.0 1.0) > -> T > : (== 10.0 10.0) > -> T > : (== 100.0 100.0) > -> T > : (scl 9) > -> 9 > : (== 1.0 1.0) > -> T > : (== 10.0 10.0) > -> T > : (== 100.0 100.0) > -> T > : (scl 17) > -> 17 > : (== 1.0 1.0) > -> T > : (== 10.0 10.0) > -> T > : (== 100.0 100.0) > -> NIL > : > > > What am I not understanding? Or am I just gifted at finding edge cases. :) > > Thanks for any help. > > Jimmie >