6
A
답변
6
은 보안으로, 당신은 당신이 런타임에 조건을 수정하려고 SWI 경고해야합니다.
5
(=>)/2
대신 다른 기호를 사용해야합니다. 아마도 (->)/2
은 수정할 수없는 제어 구조입니다.
Welcome to SWI-Prolog (Multi-threaded, 32 bits, Version 6.1.3-116-gf1c7e06) ... ?- asserta((a -> b)). ERROR: asserta/1: No permission to modify static procedure `(->)/2' ERROR: Defined at /opt/gupu/pl-devel/lib/swipl-6.1.3/boot/init.pl:194 ?- op(500, xfx, =>). true. ?- asserta(a => b). true.
Nit : 이상이 잘못된 구문입니다 (이 것을 보려면 GNU를 시도하십시오). '(=>)/2'이어야합니다. – false
@false : 오, 나는 그것을 확인하는 데 사용할 수있는 통역사가 없었습니다. 고마워, 내가 편집 할거야 :) – m09
그것은 항상 그와 같습니다 : 술어 표시기에 대괄호가 있으면 해당 연산자 정의가 있어야합니다. 그래서 그것은'(;)/2'와'(',')/2'입니다. 따옴표는 토큰을 구분하기 위해서만 사용됩니다. 예를 들어''a ''와 같이 연산자 선언과는 별도로 필요합니다. – false