LISP-변수

LISP에서 각 변수는 symbol. 변수 이름은 기호의 이름이며 기호의 저장 셀에 저장됩니다.

글로벌 변수

전역 변수는 LISP 시스템 전체에서 영구적 인 값을 가지며 새 값이 지정 될 때까지 유효합니다.

전역 변수는 일반적으로 defvar 구성.

예를 들면

(defvar x 234)
(write x)

실행 버튼을 클릭하거나 Ctrl + E를 입력하면 LISP가 즉시 실행하고 반환 된 결과는 다음과 같습니다.

234

LISP에는 변수에 대한 유형 선언이 없으므로 다음을 사용하여 기호에 대한 값을 직접 지정합니다. setq 구성.

예를 들어

->(setq x 10)

위의 식은 변수 x에 값 10을 할당합니다. 기호 자체를 표현식으로 사용하여 변수를 참조 할 수 있습니다.

그만큼 symbol-value 기능을 사용하면 심볼 저장 장소에 저장된 값을 추출 할 수 있습니다.

예를 들어

main.lisp라는 새 소스 코드 파일을 만들고 그 안에 다음 코드를 입력합니다.

(setq x 10)
(setq y 20)
(format t "x = ~2d y = ~2d ~%" x y)

(setq x 100)
(setq y 200)
(format t "x = ~2d y = ~2d" x y)

실행 버튼을 클릭하거나 Ctrl + E를 입력하면 LISP가 즉시 실행하고 반환 된 결과는 다음과 같습니다.

x = 10 y = 20 
x = 100 y = 200

지역 변수

지역 변수는 주어진 프로 시저 내에서 정의됩니다. 함수 정의 내에서 인수로 명명 된 매개 변수도 지역 변수입니다. 지역 변수는 해당 함수 내에서만 액세스 할 수 있습니다.

전역 변수와 마찬가지로 지역 변수는 setq 구성.

다른 두 가지 구조가 있습니다. letprog 지역 변수를 만들기 위해.

let 구조는 다음 구문을 갖습니다.

(let ((var1  val1) (var2  val2).. (varn  valn))<s-expressions>)

여기서 var1, var2, ..varn은 변수 이름이고 val1, val2, .. valn은 각 변수에 할당 된 초기 값입니다.

언제 let실행되면 각 변수에 해당 값이 할당되고 마지막으로 s- 표현식 이 평가됩니다. 마지막으로 평가 된 식의 값이 반환됩니다.

변수에 대한 초기 값을 포함하지 않으면 nil.

main.lisp라는 새 소스 코드 파일을 만들고 그 안에 다음 코드를 입력합니다.

(let ((x 'a) (y 'b)(z 'c))
(format t "x = ~a y = ~a z = ~a" x y z))

실행 버튼을 클릭하거나 Ctrl + E를 입력하면 LISP가 즉시 실행하고 반환 된 결과는 다음과 같습니다.

x = A y = B z = C

그만큼 prog 구조는 또한 첫 번째 인수로 지역 변수 목록을 가지며, 그 뒤에는 prog, 및 모든 s- 표현식.

그만큼 prog 함수는 s- 표현식 목록을 순서대로 실행하고 이름이 지정된 함수 호출을 만나지 않는 한 nil을 반환합니다. return. 그런 다음의 주장 return 함수가 평가되고 반환됩니다.

main.lisp라는 새 소스 코드 파일을 만들고 그 안에 다음 코드를 입력합니다.

(prog ((x '(a b c))(y '(1 2 3))(z '(p q 10)))
(format t "x = ~a y = ~a z = ~a" x y z))

실행 버튼을 클릭하거나 Ctrl + E를 입력하면 LISP가 즉시 실행하고 반환 된 결과는 다음과 같습니다.

x = (A B C) y = (1 2 3) z = (P Q 10)