0
私はset_value_in_arrayという規則を持っています。 彼はValによってArray [J]に値を返します。配列の値を設定する -
set_value_in_array([], _, _, _, _).
set_value_in_array([Head | Array], Val, J, AccJ, NewArray) :-
AccJ = J,
NewAccJ is AccJ + 1,
set_value_in_array(Array, Val, J, NewAccJ, [Val | NewArray])
;
NewAccJ is AccJ + 1,
set_value_in_array(Array, Val, J, NewAccJ, [Head | NewArray]).
-----------------------------
-----------------------------
% execute in terminal
?- set_value_in_array([1,2,3], 10, 1, 0, NewArray).
true ;
true.
なぜset_value_in_arrayは[1、10、3]としてNewArrayを表示しないのですか? 彼はいつも真実を返します。
更新:
私は set_value_in_array([]、ヴァル、J、ACCJ、NEWARRAY)の操作を行います。 - 書き込み(NEWARRAYを)。 彼は何かが
?- set_value_in_array([1,2,3,4,5,6],100,1,0,X).
[6, 5, 4, 3, 100, 1|_G516]
true.
しかし、どのように、それは書き込み機能なしで動作させるために適切なソリューションになります戻るのですか?
更新された質問 – nub
http://pastie.org/2538878 - 私の簡単な愚かな解決策。しかし、それは動作します – nub