LISP-기능

함수는 함께 작업을 수행하는 명령문 그룹입니다.

코드를 별도의 함수로 나눌 수 있습니다. 코드를 다른 함수로 나누는 방법은 사용자에게 달려 있지만 논리적으로 나누는 것은 일반적으로 각 함수가 특정 작업을 수행하는 것입니다.

LISP에서 함수 정의

명명 된 매크로 defun함수를 정의하는 데 사용됩니다. 그만큼defun 매크로에는 세 가지 인수가 필요합니다-

  • 기능의 이름
  • 기능의 매개 변수
  • 기능의 본문

defun 구문은 −

(defun name (parameter-list) "Optional documentation string." body)

간단한 예를 들어 개념을 설명하겠습니다.

예 1

네 숫자의 평균을 출력하는 averagenum 이라는 함수를 작성해 봅시다 . 이 숫자를 매개 변수로 보냅니다.

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

(defun averagenum (n1 n2 n3 n4)
   (/ ( + n1 n2 n3 n4) 4)
)
(write(averagenum 10 20 30 40))

코드를 실행하면 다음 결과가 반환됩니다.

25

예 2

원의 반경이 인자로 주어 졌을 때 원의 면적을 계산하는 함수를 정의하고 호출 해 봅시다.

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

(defun area-circle(rad)
   "Calculates area of a circle with given radius"
   (terpri)
   (format t "Radius: ~5f" rad)
   (format t "~%Area: ~10f" (* 3.141592 rad rad))
)
(area-circle 10)

코드를 실행하면 다음 결과가 반환됩니다.

Radius:  10.0
Area:   314.1592

유의하십시오-

  • 빈 목록을 매개 변수로 제공 할 수 있습니다. 즉, 함수가 인수를 취하지 않고 목록이 비어 있으며 ()로 작성됩니다.

  • LISP는 선택적, 다중 및 키워드 인수도 허용합니다.

  • 문서 문자열은 함수의 목적을 설명합니다. 함수의 이름과 연관되며 다음을 사용하여 얻을 수 있습니다.documentation 함수.

  • 함수의 본문은 여러 Lisp 표현식으로 구성 될 수 있습니다.

  • 본문의 마지막 표현식 값이 함수 값으로 반환됩니다.

  • 다음을 사용하여 함수에서 값을 반환 할 수도 있습니다. return-from 특수 연산자.

위의 개념을 간략하게 설명하겠습니다. 자세한 내용을 보려면 다음 링크를 클릭하십시오-

  • 선택적 매개 변수

  • 나머지 매개 변수

  • 키워드 매개 변수

  • 함수에서 값 반환

  • Lambda 함수

  • 매핑 기능