Clojure 배우기, 파트 IV

이제 우리는 기본이 언어를 탐구할 시간이라는 것을 이해합니다. 언어를 연구하면서 REPL을 사용하여 코드 예제를 따르는 것이 좋습니다(원하는 경우 online REPL을 사용할 수 있음).

통사론



우리가 알고 있듯이 Clojure는 LISP이며 모든 방언에서 코드를 읽을 때 주의를 끄는 것은 괄호입니다. 사실, 우리가 LISP에 대해 이야기할 때 대부분의 코드는 우리가 형식 또는 표현이라고 부르는 괄호를 사용하여 작성됩니다(단순화를 위해 형식을 채택할 수 있음).

양식은 다음과 같이 구성됩니다.


Image: "Form composition" made by the author is copyleft material under unlicense.



  • 연산자는 인수를 받고 결과를 생성하는 작업입니다.

  • ...args는 연산자가 사용하는 하나 이상의 인수입니다.

  • 실제로 LISP로서의 Clojure는 두 가지 구조만 지원합니다.
  • 데이터는 값의 리터럴 표현입니다.
  • 양식.

  • 예를 들어 다음과 같은 양식을 입력할 때:

    (+ 3 4 5)
    => 12
    


    형식은 함수에 전달되는 인수인 연산자(함수 +)와 인수(3 4 5)로 구성되어 12를 생성합니다.

    언뜻 보기에는 이상해 보일 수 있지만 Clojure(및 LISP)는 구문에 일관성이 있습니다. 누군가 Java로 프로그래밍할 때 연산과 피연산자에 따라 구문이 다른 연산이 있는 반면 Clojure에서는 모든 것이 항상 동일한 구조를 갖습니다.

    평가



    Clojure로 작업할 때 형식 인수의 일부가 다른 형식인 경우가 자주 있습니다. 예를 들면:

    (+ 5 6 (- 8 4))
    => 15
    


    더 복잡한 양식은 다음과 같이 평가됩니다.


    Image: "Clojure form evaluation" made by the author is copyleft material under unlicense.


    데이터



    양식에 아포스트로피 '를 추가하면 양식이 데이터로 평가됩니다.

    '(+ 1 2 3)
    => (+ 1 2 3)
    


    양식이 데이터로 평가되면 컴퓨터는 이를 실행하지 않고 대신 코드 작업을 수행하는 데 사용할 수 있는 일반 이전 데이터로 반환합니다.

    This is one of the main advantages of LISP dialects over most programming languages that are mainstream. In LISP there's a concept known as homoiconicity where code is data and data is code.



    양식을 데이터로 취급하기 위해 아포스트로피를 사용하는 것을 인용부호라고 합니다. 우리가 양식을 인용할 때 그 안에 있는 모든 것은 무시되고 데이터를 포함하는 단순한 목록으로 취급됩니다(다음 주제는 목록이 될 것입니다).

    클로저 퀘스트를 계속하자



    이제 우리는 거의 시작하지 않는 코드를 엉망으로 만들기 시작했습니다. Clojure는 아직 보지 못한 훌륭한 언어이며 이 시리즈의 다음 게시물에서 이를 마스터하기 위한 탐구를 계속할 것입니다.

    좋은 웹페이지 즐겨찾기