我正在探索 Prolog 中的写谓词,但它有时表现不同。我确实浏览了一些帖子,但我无法发现问题。
谓词:
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
上面的代码工作正常,但是当我向写谓词(Element)添加一个参数时,它给出了一个错误。
谓词:
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)
请帮助我为什么会出现这种异常情况。PS 我也看到了 write 的文档,但不能从中得到太多。任何帮助是极大的赞赏。