0
boolean(true).
boolean(false).
formula_0(P, Q):- (P; Q), \+ P.
solution_for_formula(P, Q, Formula):-
maplist(boolean, [P, Q]), call([Formula, P, Q]).
내 earlier question의 후속 조치. 왜이게 효과가 없을까요? (call([Formula, P, Q])
을 formula_0(P, Q)
으로 바꾼다면상위 순서 술어
고마워요! 그것은 실제로 피곤한 첫 번째 일 이었지만 자동 완성은 나에게 속임수였습니다. 그래서 혼란스러워하고 술어를 나타내는 여러 가지 방법을 더 찾았습니다. 검색하는 동안 나는 형식을 만났다 :'[f, arg0, arg1, ...]'. 이 양식이 언제 적용될 수 있는지 알려주시겠습니까? –
'(= ..)/2' 표준 술어의 인수로 사용하면 용어와 그 목록 표현 사이를 변환 할 수 있습니다. 예 : 'foo (A, 1) = .. [foo, A, 1]'호출은 참입니다. –
아, 고마워! 또한 http://en.wikibooks.org/wiki/Prolog/Higher_Order_Programming 형식을 찾은 참고 문헌을 발견했습니다. –