Prolog 쉘에서 변수를 사용할 수 있다는 것을 알고 있습니다. ('$'문자를 사용하는 것과 같은 것 같지만 ... 기억이 안납니다 ...)Prolog 쿼리 셸에서 변수를 사용하는 방법은 무엇입니까?
다음 쿼리를 실행하면 고급 :
?- leggiFile('dataggare.txt', ListaTesto), tokenizzaLista(ListaTesto, TokenizedList, 1).
ListaTesto = [68, 117, 114, 97, 110, 116, 101, 32, 105|...],
TokenizedList = [t(1, [68, 117, 114, 97, 110, 116, 101]), t(-1, [32]), t(2, [105, 108]), t(-1, [32]), t(3, [77, 101, 100|...]), t(-1, [44]), t(-1, [32]), t(4, [...|...]), t(..., ...)|...]
을하지만 오류로 이동, 별도로 두 개의 쿼리 leggiFile/2 및 tokenizzaLista/2을 실행 이런 식으로하려고하면 :
?- leggiFile('dataggare.txt', ListaTesto).
ListaTesto = [68, 117, 114, 97, 110, 116, 101, 32, 105|...].
?- tokenizzaLista($ListaTesto, TokenizedList, 1).
ERROR: variable `ListaTesto' does not exist
왜? 그것은 나에게 매우 이상한 것처럼 보인다. 내가 뭘 놓치고 있니? tokenizzaLista가 DCG 기반으로하는 경우 아니, 이것은 아니다
, 당신은 – CapelliC
phrase_from_file 사용할 수 있습니다 DCG 기반 – AndreaNobili
'$'은 항상 작동한다는 보장이 없습니다. 그것은 빠른 해킹 (사용자를위한)을위한 것입니다. 올바른 방법은 선택자의 이름으로 데이터베이스에 'asserta'하는 것입니다. 'asserta (sym (Name, Val))'그리고 나서'sym (Name, Val)'을 호출한다. –