1
我有一個類似的遞歸函數:SWI-Prolog的怪遞歸寫
fillTable(X0,Y0,Yn,Yh):-
checkPoint(X0,Y0),
Ynext = Y0+Yh,
Ynext=<Yn,
fillTable(X0,Ynext,Yn,Yh).
checkPoint(X,Y):-
(-X-1)<Y,
X<0, Y<0,
write(X), writeq(' '), write(Y),write(' in 1 area'),
nl,
!
;
(-X+1)>Y, X>0, Y>0,
write(X),write(' '), write(Y),write(' in 2 area'),
nl,
!
;
write(X),write(' '),write(Y),write(' not in area'),nl.
其中X,Y和其他變種的是float
,但是當它是由write()
寫的,它打印-1+0.2+0.2+0.2+...
不-0.8, -0.6
或其他。
我該如何解決?