私はプロローグで関数を作りました:-
mean(L, M) :-
sum(L, S),
length(L, N),
M is S/N.
sum([],0).
sum([H|T],Y):-
sum(T,X),
Y is X + H.
variance([],0).
variance([H|T], M, VO):-
variance(T,M,Y),
VO is( Y + ((H-M)*(H-M))).
statsList(L, M, V1) :-
sum(L, S),
length(L, N),
M is S/N,
variance(L, M, VO),
V1 is V0/N.
なんらかの理由で、分散を計算しようとすると、常に「false」と返されます: 分散([1,2,3],2,VO) または statsList([1,2,3],M,VO)
ただし、これをテストするためだけに使用すると、次のように機能します。
variance([],0).
variance([H|T], VO):-
variance(T,Y),
VO is( Y + ((H-2)*(H-2))).
誰かが私が間違っている場所を教えてもらえますか?