如果我給你像 process([[baby],[boy],[[is]dancing],[with],[[the][family]]],A)
, 那麼它給作爲變量未打印整個價值序言
A = [[baby],[boy],[[is]dancing],[with],[[..][..]]].
輸出我想讓它顯示在終端所有的值。 類似於 A = [[baby],[boy],[[is]dancing],[with],[[the][family]]].
如果我給你像 process([[baby],[boy],[[is]dancing],[with],[[the][family]]],A)
, 那麼它給作爲變量未打印整個價值序言
A = [[baby],[boy],[[is]dancing],[with],[[..][..]]].
輸出我想讓它顯示在終端所有的值。 類似於 A = [[baby],[boy],[[is]dancing],[with],[[the][family]]].
問題是,當頂層顯示時,頂層會截斷列表。 您可以使用prolog標誌toplevel_print_option
配置最大嵌套深度,選項爲max_depth(0)
,其中0表示顯示所有內容。
助手程序將修改序言標誌只MAX_DEPTH更改爲0,而使其他選項不變:
set_toplevel_flags:-
current_prolog_flag(toplevel_print_options, Opts),
(select(max_depth(_), Opts, TOpts) -> NOpts=TOpts ; NOpts=Opts),
set_prolog_flag(toplevel_print_options, [max_depth(0)|NOpts]).
使用current_prolog_flag/2
謂語與toplevel_print_options
標誌。事情是這樣的:
?- current_prolog_flag(toplevel_print_options, X). X = [quoted(true), portray(true), max_depth(10), spacing(next_argument)].
您可以修改max_depth
期權的價值,或者你可以得到答案縮寫後鍵入W¯¯,和序言將充分打印答案。按p將恢復原始格式。爲了讓Prolog在打印答案後等待您的輸入,您可能需要在查詢中添加; true.
以添加一些非確定性。欲瞭解更多信息,請參閱here。
請參閱[所有這些](http://stackoverflow.com/search?q= [prolog-toplevel] + max_depth)答案。 – false