我正在探索Prolog中的写谓词,但它有时表现不同。我确实经历了some posts,但我无法发现这个问题。
谓词:
explore_write_predicate(InputList,Index):-
TempIndex is Index+1,
select(Element,InputList,TempList),
write(TempIndex).
查询:
explore_write_predicate([1,2,3,4],1).
结果:
2
true
上面的代码工作正常但是当我向写谓词添加一个参数(元素)时,它会给出错误。
谓词:
explore_write_predicate(InputList,Index):-
TempIndex is Index+1,
select(Element,InputList,TempList),
write(TempIndex,Element).
查询:
explore_write_predicate([1,2,3,4],1).
错误:
No permission to call sandboxed `write(_1132,_1134)'
Reachable from:
explore_write_predicate(A,B)
swish_trace:swish_call(explore_write_predicate([1,2,3,4],1))
'$swish wrapper'(explore_write_predicate([1,2,3,4],1),A)
请帮助我为什么会出现这种异常现象。 P.S我也看到了写入的文档,但无法从中得到很多。 非常感谢任何帮助。