프롤로그 변수에서 숫자 분리

악몽 코딩

터미널에서 다음과 같이 초기화하는 경우 :

    numbers((2,5)).

두 값을 개별적으로 어떻게 얻을 수 있습니까? 내 코드에 다음이 있습니다.

    numbers(Pair_numbers) :- Pair_numbers is (X, Y).

그리고 이것은 작동하지 않습니다. 내가 원하는 X로 일을 2하고 Y는 AS 5그래서 나중에 내가 좋아하는 일에 사용할 수 있습니다에 있음 :

    nth1(X, Random_list, List_Row)
    nth1(Y, List_Row, Value)
user1812457

프롤로그 코드에서 "상수"를 유지하는 유일한 관용적 옵션은 위의 lurker의 주석에서 지적한 것처럼 사실로 유지하는 것입니다. 코드 어딘가에이 사실 이있을 것입니다 .

numbers(2, 5).

그런 다음 필요할 때 값을 얻기 위해 사실을 평가해야합니다.

?- numbers(X, Y), /* do something with X and Y */

이것은 C 파일의 맨 위에 작성하는 것과 거의 같은 아이디어입니다.

#define NUMBER1 2
#define NUMBER2 5

또는 글로벌 범위에서

const int n1 = 2;
const int n2 = 5;

지적했듯이 "튜플"이나 다른 구조로 만들 필요는 없으며 두 개의 인수 만 사용하면됩니다.

"터미널"또는 최상위 레벨에서 수행하려면 다음을 시도해보십시오.

?- assertz(numbers(2, 5)).

...하지만 조심하세요 : 당신은 이미 이것을 가지고 있지 않은지 확인하고 싶을 수도 있습니다. 따라서 조금 더 안전 할 수 있습니다.

?- retractall(numbers(_,_)), assertz(numbers(2, 5)).

또는 어쩌면

?- abolish(numbers/2), assertz(numbers(2, 5)).

사용 여부 abolish또는 retractall.... 설명서를 읽으십시오. 때에 따라 다르지.

또한 "전역 변수"의 다른 특징을 가질 수 있지만 대부분의 사용 사례에서는 문제가되지 않습니다.

그리고 마지막으로 한 가지 : 적어도 SWI-Prolog를 사용하면 이전 쿼리의 변수 값에 $Variable_name. 다음은 SWI-Prolog의 최상위 수준과의 상호 작용에서 얻은 실제 기록입니다.

?- X = 2.
X = 2.

?- Y = 5.
Y = 5.

?- X < Y.
ERROR: </2: Arguments are not sufficiently instantiated
?- $X < $Y.
true.

?- Z is $X + $Y.
Z = 7.

다른 구현에도 비슷한 것이있을 수 있습니다. 그것에 익숙해지지 마십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

프롤로그-정수와 분리 된 문자열

분류에서Dev

프롤로그 : 숫자를 증가하는 정수 시퀀스로 분할

분류에서Dev

프롤로그에서 문자열을 숫자로 변환

분류에서Dev

프롤로그에서 문자열을 숫자로 변환

분류에서Dev

매개 변수 파일에서 점으로 구분 된 숫자 늘리기

분류에서Dev

프롤로그에서 숫자 프로그램의 합계

분류에서Dev

정수로 숫자 분리-Deitel의 Java 책에서 연습

분류에서Dev

숫자 대 비 숫자에 따라 문자열을 여러 변수로 분리해야 함

분류에서Dev

0과 숫자 프롤로그 사이의 여러 변수 값

분류에서Dev

문자열에서 배열로 숫자 분리

분류에서Dev

문자열에서 배열로 숫자를 분리하는 PHP

분류에서Dev

프롤로그에서 문자열 처리를 수행 할 수 있습니까?

분류에서Dev

C ++에서 소수 자리가있는 숫자를 char에서 int로 변환

분류에서Dev

숫자 범위에서 술어를 테스트하고 프롤로그에서 통과 한 숫자를 리턴하는 방법

분류에서Dev

프롤로그-목록에 재귀 적으로 숫자 추가

분류에서Dev

파이썬에서 쉼표로 숫자 분리

분류에서Dev

숫자가 소수인지 확인하는 프롤로그 프로그램

분류에서Dev

프롤로그에서 어떻게 숫자를 반환 할 수 있습니까?

분류에서Dev

mutate로 숫자 변수 분류

분류에서Dev

C #에서 숫자가 아닌 변수에 대한 차트 그리기

분류에서Dev

파이썬에서 문자열을 숫자와 문자로 분리

분류에서Dev

데이터 프레임을 논리에서 숫자로 변환

분류에서Dev

프리그 매치를 숫자로 변경

분류에서Dev

프롤로그에서 사실 목록 분리

분류에서Dev

프롤로그에서 분리의 교환 성

분류에서Dev

PHP에서 점 구분 기호로 문자열 숫자 변환

분류에서Dev

x 자리 숫자를 두 자리 숫자로 변환

분류에서Dev

프롤로그 쿼리에서 N 번째로 오래된 자식 반환

분류에서Dev

프롤로그는 문자열 목록을 숫자 목록으로 변환

Related 관련 기사

  1. 1

    프롤로그-정수와 분리 된 문자열

  2. 2

    프롤로그 : 숫자를 증가하는 정수 시퀀스로 분할

  3. 3

    프롤로그에서 문자열을 숫자로 변환

  4. 4

    프롤로그에서 문자열을 숫자로 변환

  5. 5

    매개 변수 파일에서 점으로 구분 된 숫자 늘리기

  6. 6

    프롤로그에서 숫자 프로그램의 합계

  7. 7

    정수로 숫자 분리-Deitel의 Java 책에서 연습

  8. 8

    숫자 대 비 숫자에 따라 문자열을 여러 변수로 분리해야 함

  9. 9

    0과 숫자 프롤로그 사이의 여러 변수 값

  10. 10

    문자열에서 배열로 숫자 분리

  11. 11

    문자열에서 배열로 숫자를 분리하는 PHP

  12. 12

    프롤로그에서 문자열 처리를 수행 할 수 있습니까?

  13. 13

    C ++에서 소수 자리가있는 숫자를 char에서 int로 변환

  14. 14

    숫자 범위에서 술어를 테스트하고 프롤로그에서 통과 한 숫자를 리턴하는 방법

  15. 15

    프롤로그-목록에 재귀 적으로 숫자 추가

  16. 16

    파이썬에서 쉼표로 숫자 분리

  17. 17

    숫자가 소수인지 확인하는 프롤로그 프로그램

  18. 18

    프롤로그에서 어떻게 숫자를 반환 할 수 있습니까?

  19. 19

    mutate로 숫자 변수 분류

  20. 20

    C #에서 숫자가 아닌 변수에 대한 차트 그리기

  21. 21

    파이썬에서 문자열을 숫자와 문자로 분리

  22. 22

    데이터 프레임을 논리에서 숫자로 변환

  23. 23

    프리그 매치를 숫자로 변경

  24. 24

    프롤로그에서 사실 목록 분리

  25. 25

    프롤로그에서 분리의 교환 성

  26. 26

    PHP에서 점 구분 기호로 문자열 숫자 변환

  27. 27

    x 자리 숫자를 두 자리 숫자로 변환

  28. 28

    프롤로그 쿼리에서 N 번째로 오래된 자식 반환

  29. 29

    프롤로그는 문자열 목록을 숫자 목록으로 변환

뜨겁다태그

보관