diff --git a/Index.html b/Index.html index 438ad1d..7d43d2a 100644 --- a/Index.html +++ b/Index.html @@ -179,14 +179,26 @@

Successful Lisp - 한국어판

들어가며

-

David Lamkins의 Successful Lisp의 한국어 번역본입니다.

-

다비드 라킨스, 번역을 허락해주셔서 감사합니다. -그의 웹사이트는 http://lamkins.net, github는 https://github.com/TieDyedDevil입니다. -그의 책은 아마존 닷컴 이곳에서 원서로 구입할 수 있으며 온라인 버전은 이곳에서 볼 수 있습니다. Successful Lisp의 모든 저작권은 David Lamkins에게 있습니다.

-

This is David Lamkins's Successful Lisp's Korean translation.

-

David Lamkins, Thank you for allowing me to translate your book. -His personnal website is http://lamkins.net, github is https://github.com/TieDyedDevil. -You can buy His original book on Amazon.com hereand you can check his online version of successfull lisp here. David Lamkins owns All of Successful Lisp's copyright.

+
diff --git a/index.html b/index.html index 438ad1d..7d43d2a 100644 --- a/index.html +++ b/index.html @@ -179,14 +179,26 @@

Successful Lisp - 한국어판

들어가며

-

David Lamkins의 Successful Lisp의 한국어 번역본입니다.

-

다비드 라킨스, 번역을 허락해주셔서 감사합니다. -그의 웹사이트는 http://lamkins.net, github는 https://github.com/TieDyedDevil입니다. -그의 책은 아마존 닷컴 이곳에서 원서로 구입할 수 있으며 온라인 버전은 이곳에서 볼 수 있습니다. Successful Lisp의 모든 저작권은 David Lamkins에게 있습니다.

-

This is David Lamkins's Successful Lisp's Korean translation.

-

David Lamkins, Thank you for allowing me to translate your book. -His personnal website is http://lamkins.net, github is https://github.com/TieDyedDevil. -You can buy His original book on Amazon.com hereand you can check his online version of successfull lisp here. David Lamkins owns All of Successful Lisp's copyright.

+
    +
  • +

    David Lamkins의 Successful Lisp 한국어 번역본입니다.

    +
      +
    • 번역을 허락해주셔서 감사합니다 David Lamkins.
    • +
    • 그의 웹사이트는 http://lamkins.net, github는 https://github.com/TieDyedDevil입니다.
    • +
    • 그의 책은 아마존 닷컴 이곳에서 원서로 구입할 수 있으며 온라인 버전은 이곳에서 볼 수 있습니다.
    • +
    • Successful Lisp의 모든 저작권은 David Lamkins에게 있습니다.
    • +
    +
  • +
  • +

    This is Korean translation version of David Lamkins's Successful Lisp.

    +
      +
    • David Lamkins, Thank you for allowing me to translate your book.
    • +
    • His personnal website is http://lamkins.net, github is https://github.com/TieDyedDevil.
    • +
    • You can buy His original book on Amazon.com here and you can check his online version of successfull lisp here.
    • +
    • David Lamkins owns All of Successful Lisp's copyright.
    • +
    +
  • +
diff --git a/print.html b/print.html index 9832377..de69e9e 100644 --- a/print.html +++ b/print.html @@ -177,14 +177,26 @@

Successful Lisp - 한국어판

들어가며

-

David Lamkins의 Successful Lisp의 한국어 번역본입니다.

-

다비드 라킨스, 번역을 허락해주셔서 감사합니다. -그의 웹사이트는 http://lamkins.net, github는 https://github.com/TieDyedDevil입니다. -그의 책은 아마존 닷컴 이곳에서 원서로 구입할 수 있으며 온라인 버전은 이곳에서 볼 수 있습니다. Successful Lisp의 모든 저작권은 David Lamkins에게 있습니다.

-

This is David Lamkins's Successful Lisp's Korean translation.

-

David Lamkins, Thank you for allowing me to translate your book. -His personnal website is http://lamkins.net, github is https://github.com/TieDyedDevil. -You can buy His original book on Amazon.com hereand you can check his online version of successfull lisp here. David Lamkins owns All of Successful Lisp's copyright.

+
    +
  • +

    David Lamkins의 Successful Lisp 한국어 번역본입니다.

    +
      +
    • 번역을 허락해주셔서 감사합니다 David Lamkins.
    • +
    • 그의 웹사이트는 http://lamkins.net, github는 https://github.com/TieDyedDevil입니다.
    • +
    • 그의 책은 아마존 닷컴 이곳에서 원서로 구입할 수 있으며 온라인 버전은 이곳에서 볼 수 있습니다.
    • +
    • Successful Lisp의 모든 저작권은 David Lamkins에게 있습니다.
    • +
    +
  • +
  • +

    This is Korean translation version of David Lamkins's Successful Lisp.

    +
      +
    • David Lamkins, Thank you for allowing me to translate your book.
    • +
    • His personnal website is http://lamkins.net, github is https://github.com/TieDyedDevil.
    • +
    • You can buy His original book on Amazon.com here and you can check his online version of successfull lisp here.
    • +
    • David Lamkins owns All of Successful Lisp's copyright.
    • +
    +
  • +

03. 12개의 레슨으로 배우는 필수 리스프

이번 장은 여러분에게 리스프를 시작하기에 앞서 알아야 할 모든것을 가르칠 것입니다.

언어의 코어 기능들을 모두 다룰 것입니다. 여러분이 이 코어를 리스프 자체라 생각하고, 그렇지 않은 것은 하나의 거대한 표준 라이브러리라 생각하셨으면 합니다. 책을 읽은 후 이를 배경으로, Common Lisp : The Language, 2nd Edition과 같은 메뉴얼을 참조하면, 더욱 편하게 리스프의 남은 부분들을 배울 수 있을 것입니다.

diff --git a/searchindex.js b/searchindex.js index 7d64099..2e314b9 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Object.assign(window.search, {"doc_urls":["Index.html#들어가며","ch03/ch03.html#03-12개의-레슨으로-배우는-필수-리스프","ch03/ch03.html#짚고-넘어가기","ch03/lesson_01.html#레슨-01-필수---신택스essential-syntax","ch03/lesson_01.html#리스트는-괄호로-감싸져있다","ch03/lesson_01.html#아톰atom은-공백이나-괄호로-분리된-것입니다","ch03/lesson_01.html#짚고-넘어가기","ch03/lesson_02.html#레슨-02-필수---평가essential-evaluation","ch03/lesson_02.html#폼form은-평가될-수-있습니다","ch03/lesson_02.html#함수는-인자를-받을-수-있습니다","ch03/lesson_02.html#함수는-다수의-값을-반환-할-수-있다","ch03/lesson_02.html#함수에서-인자를-수정하지-않는다","ch03/lesson_02.html#인자는-보통은-함수가-적용-전에-평가된다","ch03/lesson_02.html#인자들은-좌측에서-우측으로-순서대로-평가된다","ch03/lesson_02.html#스페셜-폼과-메크로는-인자의-평가하는-방법을-바꿀-수-있다","ch03/lesson_02.html#짚고-넘어가기","ch03/lesson_03.html#레슨-03-스페셜-폼과-매크로에-대한-예제","ch03/lesson_03.html#setq","ch03/lesson_03.html#let","ch03/lesson_03.html#cond","ch03/lesson_03.html#quote","ch03/lesson_03.html#짚고-넘어가기","ch03/lesson_04.html#레슨-04-조립과-분해","ch03/lesson_04.html#cons","ch03/lesson_04.html#list","ch03/lesson_04.html#first-와--rest","ch03/lesson_04.html#짚고-넘어가기","ch03/lesson_05.html#레슨-05-네이밍과-아이덴티티naming-and-identity","ch03/lesson_05.html#심볼은-단지-이름","ch03/lesson_05.html#심볼은-항상-유니크하다","ch03/lesson_05.html#심볼로-값에-이름-붙일-수-있다","ch03/lesson_05.html#값은-하나-이상의-이름을-가질-수-있다","ch03/lesson_05.html#짚고-넘어가기","ch03/lesson_06.html#레슨-06-바인딩-vs-할당","ch03/lesson_07.html#레슨-07-필수---함수-정의","ch03/lesson_08.html#레슨-08-필수---매크로-정의","ch03/lesson_09.html#레슨-09-필수---다중-값","ch03/lesson_10.html#레슨-10-프리뷰---다른-데이터-타입","ch03/lesson_11.html#레슨-11-필수---입력과-출력","ch03/lesson_12.html#레슨-12-필수---리더-매크로"],"index":{"documentStore":{"docInfo":{"0":{"body":45,"breadcrumbs":0,"title":0},"1":{"body":6,"breadcrumbs":4,"title":2},"10":{"body":22,"breadcrumbs":3,"title":0},"11":{"body":0,"breadcrumbs":3,"title":0},"12":{"body":2,"breadcrumbs":3,"title":0},"13":{"body":0,"breadcrumbs":3,"title":0},"14":{"body":5,"breadcrumbs":3,"title":0},"15":{"body":8,"breadcrumbs":3,"title":0},"16":{"body":1,"breadcrumbs":4,"title":1},"17":{"body":84,"breadcrumbs":4,"title":1},"18":{"body":100,"breadcrumbs":3,"title":0},"19":{"body":59,"breadcrumbs":4,"title":1},"2":{"body":5,"breadcrumbs":2,"title":0},"20":{"body":32,"breadcrumbs":4,"title":1},"21":{"body":3,"breadcrumbs":3,"title":0},"22":{"body":0,"breadcrumbs":4,"title":1},"23":{"body":51,"breadcrumbs":4,"title":1},"24":{"body":29,"breadcrumbs":4,"title":1},"25":{"body":64,"breadcrumbs":5,"title":2},"26":{"body":8,"breadcrumbs":3,"title":0},"27":{"body":0,"breadcrumbs":6,"title":3},"28":{"body":32,"breadcrumbs":3,"title":0},"29":{"body":24,"breadcrumbs":3,"title":0},"3":{"body":0,"breadcrumbs":6,"title":3},"30":{"body":23,"breadcrumbs":3,"title":0},"31":{"body":63,"breadcrumbs":3,"title":0},"32":{"body":1,"breadcrumbs":3,"title":0},"33":{"body":0,"breadcrumbs":6,"title":2},"34":{"body":0,"breadcrumbs":4,"title":1},"35":{"body":0,"breadcrumbs":4,"title":1},"36":{"body":0,"breadcrumbs":4,"title":1},"37":{"body":0,"breadcrumbs":4,"title":1},"38":{"body":0,"breadcrumbs":4,"title":1},"39":{"body":0,"breadcrumbs":4,"title":1},"4":{"body":51,"breadcrumbs":3,"title":0},"5":{"body":48,"breadcrumbs":4,"title":1},"6":{"body":2,"breadcrumbs":3,"title":0},"7":{"body":0,"breadcrumbs":6,"title":3},"8":{"body":29,"breadcrumbs":4,"title":1},"9":{"body":52,"breadcrumbs":3,"title":0}},"docs":{"0":{"body":"David Lamkins의 Successful Lisp의 한국어 번역본입니다. 다비드 라킨스, 번역을 허락해주셔서 감사합니다. 그의 웹사이트는 http://lamkins.net , github는 https://github.com/TieDyedDevil 입니다. 그의 책은 아마존 닷컴 이곳 에서 원서로 구입할 수 있으며 온라인 버전은 이곳 에서 볼 수 있습니다. Successful Lisp의 모든 저작권은 David Lamkins에게 있습니다. This is David Lamkins's Successful Lisp's Korean translation. David Lamkins, Thank you for allowing me to translate your book. His personnal website is http://lamkins.net , github is https://github.com/TieDyedDevil . You can buy His original book on Amazon.com here and you can check his online version of successfull lisp here . David Lamkins owns All of Successful Lisp's copyright.","breadcrumbs":"들어가며 » 들어가며","id":"0","title":"들어가며"},"1":{"body":"이번 장은 여러분에게 리스프를 시작하기에 앞서 알아야 할 모든것을 가르칠 것입니다. 언어의 코어 기능들을 모두 다룰 것입니다. 여러분이 이 코어를 리스프 자체라 생각하고, 그렇지 않은 것은 하나의 거대한 표준 라이브러리라 생각하셨으면 합니다. 책을 읽은 후 이를 배경으로, Common Lisp : The Language, 2nd Edition과 같은 메뉴얼을 참조하면, 더욱 편하게 리스프의 남은 부분들을 배울 수 있을 것입니다. 여러분은 이번 장을 한번에 쭉 읽어야 합니다. 이따금 다음 단락이나 다음 장에대해 언급하겠지만, 이번장을 이해하기 위해서 반드시 그러한 참고들을 따를 필요는 없습니다. 이번 장을 끝낼 무렵, 여러분은 이미 리스프 시스템의 키보드 앞에 앉아 4장을 진행하고 있을 것 입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 03. 12개의 레슨으로 배우는 필수 리스프","id":"1","title":"03. 12개의 레슨으로 배우는 필수 리스프"},"10":{"body":"우리는 종종 다수의 값을 반환하는 함수를 갖길 원합니다. 예를들어, 데이터베이스 전체를 살펴보는 함수는 요구하는 값과 완료상태코드를 동시에 반환해야 합니다. 이를 행할 방법으로는 해당 결과값을 저장할 위치 자체를 함수에 전달하는 것입니다; 가능은 하지만, 리스프 프로그램에서는 매우 드믄 일입니다. 또 다른 접근법은 결과와 상태코드를 하나로 묶어 하나의 반환 값으로 만드는 것입니다. 리스프는 구조체[p 72]를 포함하여 여러분에게 이를 수행할 다양한 방식을 제공합니다. 다만, 이와같이 하나로 묶는 방식은 잘못하면 가비지(29장 [p 238] 참조)가 생성되어 프로그램 작동 속도가 느려지게 만들 수 있기에 숙련된 리스프 프로그래머는 이와 같은 작업을 피합니다. 함수에서 다수의 값을 반환하는 올바른 법은 values 폼을 이용하는 것입니다. 잠시 후에 함수 컨텍스트안에서의 VALUES의 사용법을 [p 63]에서 살펴보도록 하겠습니다. 지금은, 리스프가 values 폼을 평가할때 무슨 일이 벌어지는지 살펴봅시다: (values 1 2 3 :hi \"Hello\")\n;;=> 1\n;;=> 2\n;;=> 3\n;;=> :HI\n;;=> \"Hello\" 리스프가 values 폼으로 각 인자에 대한 값을 반환하는 것을 확인할 수 있습니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수는 다수의 값을 반환 할 수 있다.","id":"10","title":"함수는 다수의 값을 반환 할 수 있다."},"11":{"body":"앞서, 결과값을 저장할 위치 자체를 인자로 함수에 넘길 수 있으며, 함수가 그 위치의 값을 바꿀 수도 있다고 말한 바가 있습니다. 다른 언어들은 이를 일반적인 레파토리로 말할지라도, 리스프 프로그램에서 매우 드문 일입니다. 저장할 위치에 키워드가 아닌 심볼이나 구조체 같은 것을 넣을 수 는 있습니다. 심볼을 넣을 경우, 함수는 심볼에 새로운 값을 넣는 코드를 수행해야만 합니다. 구조체를 넣을 경우 구조체의 각 값을 올바르게 변경하는 코드를 수행해야만 합니다. 이러한 작업 자체도 복잡하고 이렇게 작성된 프로그램을 이해하는 것도 어렵습니다. 따라서 리스프 프로그래머들은 일반적으로 인자를 수정하지 않고, 인자는 인자, 결과는 결과로 구분된 함수를 작성합니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수에서 인자를 수정하지 않는다.","id":"11","title":"함수에서 인자를 수정하지 않는다."},"12":{"body":"리스프가 함수를 평가하면, 앞서 봤던것처럼[p 42], 항상 모든 인자를 우선적으로 평가합니다. 불행히도, 모든 규칙에는 예외가 있으며, (곧 보게될 것처럼)이 규칙도 예외는 아닙니다... 문제는 리스프가 함수의 인자를 평가하지 않을 수 있다라는 점이 아니라, 리스트 폼은 함수 호출이 아닐 수 도 있다라는 점입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 인자는 (보통은) 함수가 적용 전에 평가된다.","id":"12","title":"인자는 (보통은) 함수가 적용 전에 평가된다."},"13":{"body":"리스트 폼이 함수를 호출하면, 이의 인자는 항상 좌측에서 우측으로 순서대로 평가됩니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 인자들은 좌측에서 우측으로 순서대로 평가된다","id":"13","title":"인자들은 좌측에서 우측으로 순서대로 평가된다"},"14":{"body":"리스트 폼이 함수 호출이 아닐 수 도 있다 라고 했는데, 그럼 무엇이 될 수 있을까요? 2가지 경우가 있지만, 결과는 같습니다: 몇몇 인자는 평가되며 몇몇은 평가가 안됩니다. 폼이나 폼이 아니냐에 달려있습니다. 이 예외에 대해서만 알면 됩니다. 다행히도, 대부분의 리스프 시스템은 한두번의 키 입력으로 이에 대한 온라인 문서를 여러분에게 보여줄 것입니다. 모든 인자가 평가되지 않는 폼은 두가지가 있습니다: 스페셜 폼과 매크로. 리스프는 몇몇 스페셜 폼을 미리 정의해 두었습니다. 언어 자체의 주요 기능이기에 여러분만의 스페셜 폼을 추가할 수는 없습니다. 또 리스프는 몇몇 매크로를 미리 정의해두었습니다. 단, 매크로는 저희가 작성할 수 있습니다. 리스프의 매크로를 이용하면 언어의 강력한 힘을 이용하여 우리만의 기능을 추가 할 수 있습니다. 이 장의 뒷 부분에서 간략하게 간단한 매크로를 작성해 볼 것입니다 [p 61]. 20장에서는[p 188] 복잡한 매크로에 대해 다뤄볼 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 스페셜 폼과 메크로는 인자의 평가하는 방법을 바꿀 수 있다.","id":"14","title":"스페셜 폼과 메크로는 인자의 평가하는 방법을 바꿀 수 있다."},"15":{"body":"폼(form) 키워드(:) 전위 표기법(prefix notation) atom numberp NIL T values","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 짚고 넘어가기","id":"15","title":"짚고 넘어가기"},"16":{"body":"원문 이제 스페셜 폼과 매크로에 대해 살펴보도록 하겠습니다. 다음 4개의 레슨들을 거쳐, 가장 기본적인 리스프 데이터 형식, 리스트를 이용하여 간단한 함수를 작성케 해주는 레파토리를 구축할 것입니다. 나머지 장에서는 더욱 복잡한 프로그램 구조와 데이터형식을 다룰 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » 레슨 03. 스페셜 폼과 매크로에 대한 예제","id":"16","title":"레슨 03. 스페셜 폼과 매크로에 대한 예제"},"17":{"body":"이전에, 여러분께 리스프가 심볼 폼을 평가하여 변수의 값을 받온다고 말했습니다. setq는 이 변수의 값을 설정하는 방법을 제공합니다: (setq my-name \"David\")\n;;=> \"David\" my-name\n;;=> \"David\" (setq a-variable 57)\n;;=> 57 a-variable\n;;=> 57 (setq a-variable :a-keyword)\n;;=> :A-KEYWORD setq의 첫번째 인자는 심볼입니다. 이는 평가되지 않습니다. 두번째 인자는 변수의 값으로 할당됩니다. setq는 마지막 인자의 값을 반환합니다. setq는 심볼 그 자체를 값으로 할당하고자 하기에 첫번째 인자를 평가하지 않습니다. 만일 setq가 첫번째 인자를 평가한다면, (할당될 심볼이 있어야 하기에)해당 인자의 값은 심볼이여야 합니다. set 폼이 그러한 일을 합니다: (setq var-1 'var-2)\n;;=> VAR-2 var-1\n;;=> VAR-2 var-2\n;;>| Error: Unbound variable :TODO(pyoung) (set var-1 99)\n;;=> 99 var-1\n;;=> VAR-2 VAR-2\n;;=> 99 첫번째 폼에서 '을 발견하셨나요? 이것은 다음 폼 var-2 가 평가되는 것을 방지합니다. 이번 레슨 후반에, quote[p 50]를 살펴볼때, 더욱 자세히 설명하도록 하겠습니다. 이번 예제에서는, 우선 var-1의 값을 심볼 var-2로 설정하였습니다. 그 후 var-2의 값을 확인하였고, 아무런 값도 가지지 않았다는 것을 확인하였습니다. 다음으로, (setq가 아닌) set을 이용하여 var-1의 값인 심볼 var-2에 값 99를 할당하였습니다. 사실 setq 폼은 심볼과 값을 번갈아 사용하여 짝수개의 인자를 취할 수 있습니다: (setq month \"June\" day 8 year 1954)\n;;=> 1954 month\n;;=> \"June\" day\n;;=> 8 year\n;;=> 1954 setq는 좌측에서 우측으로 할당을 수행하고, 맨 우측에 있는 값을 반환합니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » SETQ","id":"17","title":"SETQ"},"18":{"body":"let 폼은 이전에 봐왔던 것보다 좀 더 복잡해 보입니다. let폼은 중첩된 리스트를 이용하지만, 스페셜 폼은 아니기에 특정 요소만 평가됩니다: (let ((a 3) (b 4) (c 5)) (* (+ a b) c))\n;;=> 35 a\n;;>| Error: Unbound variable b\n;;>| Error: Unbound variable c\n;;>| Error: Unbound variable 위에 있는 let 폼은 심볼 a, b, c의 값을 정의 후, 이를 이용하여 산술 계산을 하였습니다. 또한 이 계산의 결과가 바로 let 폼의 결과입니다. let에서 정의된 변수가 폼을 평가한 후에는 어떠한 값도 지니지 않는다는 점을 주목하시기 바랍니다. 대게, let은 다음과 같이 생겼습니다: (let (bindings) forms) bindings에는 임의의 수의 두개의 원소를 지닌 리스트가 있으며 (각 리스트는 심볼과 값을 지닙니다), forms에는 임의의 수의 리스프 폼이 있습니다. forms의 평가를 위해, bindings에 의해 수립된 값을 이용합니다. let은 마지막 폼에 의해 반환된 값(들)을 반환합니다. 들여쓰기는 let의 동작에 영향을 미치진 않지만, 적절한 들여쓰기는 가독성을 향상시킵니다. 다음 두 동일한 폼을 살펴보시기 바랍니다: (let ((p 52.8) (q 35.9) (r (f 12.07))) (g 18.3) (f p) (f q) (g r t)) (let ((p 52.8) (q 35.9) (r (f 12.07))) (g 18.3) (f p) (f q) (g r t)) 첫번째 경우, 들여쓰기로 어떤게 바인딩이며 어떤게 폼인지 명확하게 나타납니다. 독자가 let 폼의 두 부분에서 수행된 서로 다른 규칙에 대해 자세히 알지 못할지라도, 들여쓰기는 차이를 나타냅니다. 두번째경우, 여러분은 어디에서 바인딩이 끝나며 폼이 시작되는지 알고자 한다면, 괄호를 세어야만 할 것입니다. 더욱 안좋은 것은, 들여쓰기의 부제는 let 폼의 두 부분에 의해 수행되는 역활의 차이점에 대해 시각적 단서(visual cues)를 없애버립니다. setq를 이용하여 변수를 정의하고 let 폼에서 동일한 변수 이름을 사용한다면, let을 평가하는 동안 let에 의해 정의된 값이 (setq에 의해 정의된)다른 값을 대체할 것입니다: (setq a 89)\n;;=> 89 a\n;;=> 89 (let ((a 3)) (+ a 2))\n;;=> 5 a\n;;=> 89 좌에서 우로 순서대로 값의 할당이 이루어지는 setq와 달리, let은 모두 동일한 시간에 변수를 바인드합니다. (setq w 77)\n;;=> 77 (let ((w 8) (x w)) (+ w x))\n;;=> 85 let은 w를 8로 x는 w로 바인드 하였습니다. 동일한 시각에 이러한 바인딩이 발생하였으므로 w는 여전히 값 77을 지니게 됩니다. 리스프는 순서대로 바인딩을 수행하는 let*이라는 let의 변종을 지녔습니다. (setq u 37)\n;;=> 37 (let* ((v 4) (u v)) (+ u v))\n;;=> 8","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » LET","id":"18","title":"LET"},"19":{"body":"cond 매크로는 조건적으로 리스프 폼을 평가하도록 합니다. let처럼, cond는 폼의 다양한 부분을 구분짓기 위해 괄호를 이용합니다. 이 예제를 살펴보시기 바랍니다: (let ((a 1) (b 2) (c 1) (d 1)) (cond ((eql a b) 1) ((eql a c) \"First form\" 2) ((eql a d) 3)))\n;;=> 2 위에 정의된 cond 폼에서 3개의 절을 정의하였습니다. 각 절은 테스트 폼으로 시작하는 리스트이며 원하는 만큼의 바디(body) 폼이 뒷따라 나옵니다. 바디 폼은 테스트가 성공일시 실행되는 코드 입니다. 순차적으로 절이 선택됩니다 - 하나의 테스트가 성공하면 그에 대응하는 바디 폼이 평가되고 그 바디 폼의 마지막 값이 cond 폼의 값이 됩니다. cond는 여러 절을 다룰 수 있기에, 스페셜 폼 if에 비해 범용적입니다. 이제 예제에서 어떤일이 수행되는지 살펴보도록 하겠습니다. 두 인자가 동일하거나, 동일한 숫자면 eql 은 T를 반환합니다(17장[p 174]에서 다루게될 미묘한 다름이 있긴 합니다). 3개의 테스트중 두개만 실행되었습니다. 첫번째 (eql a b)는 NIL을 반환합니다. 그러므로, 1을 포함하는 절은 넘어갑니다. 두번째 절은 (eql a c)를 테스트하며 이는 참입니다. 이 테스트가 NIL이 아닌 값을 반환하기에, 절의 나머지 부분이 평가가 되어, 마지막 폼의 값이 cond의 값으로 반환된 다음, 최종적으로 let의 반환값으로써 반환됩니다. 세번째 절은 이미 이전 절이 선택되었기에 평가되지 않습니다 - 절들은 순서대로 선택됩니다. 관습적으로 cond의 마지막 절의 테스트 폼으로 T를 사용합니다. 이는 다른 절들이 모두 테스트에 실패를 하면 마지막 절의 바디 폼이 평가된다는 것을 보증합니다. 기본 값을 반환하거나 기타 다른 적절한 작업을 수행하기 위해 이 마지막 절을 활용할 수 있습니다. 여기 예제가 있습니다: (let ((a 32)) (cond ((eql a 13) \"An unlucky number\") ((eql a 99) \"A lucky number\") (t \"Nothing special about this number\")))\n;;=> \"Nothing special about this number\"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » COND","id":"19","title":"COND"},"2":{"body":"Common Lisp : The Language, 2nd Edition","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 짚고 넘어가기","id":"2","title":"짚고 넘어가기"},"20":{"body":"가끔씩 리스프의 평가 규칙을 적용시키지 않고 싶을 때가 있을것입니다.. 이러한 예 중 하나를 꼽자면, 함수 호출의 인자로써 심볼의 값보다 심볼 그 자체를 쓰고 싶을 때입니다: (setq a 97)\n;;=> 97 a\n;;=> 97 (setq b 23)\n;;=> 23 (setq a b)\n;;=> 23 a\n;;=> 23 (setq a (quote b))\n;;=> B a\n;;=> B 차이점은 (setq a b)에서 사용된 b의 값 과 (setq a (quote b))에서의 심볼 b입니다. quote 폼은 매우 자주 사용되며, 리스프는 약칭 표기를 제공합니다: (QUOTE form) == 'form 리스프는 리더 매크로를 통해 '와 quote를 동일하게 처리합니다. 레슨 12 [p 82]에서 어떻게 여러분만의 리더 매크로를 정의할 수 있는지 간략하게 살펴볼 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » QUOTE","id":"20","title":"QUOTE"},"21":{"body":"setq let cond ', quote","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » 짚고 넘어가기","id":"21","title":"짚고 넘어가기"},"22":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » 레슨 04. 조립과 분해","id":"22","title":"레슨 04. 조립과 분해"},"23":{"body":"cons는 리스트의 가장 기본적인 구성 요소입니다. 이는 함수므로 이의 인자들을 평가합니다. 리스트를 만들때에는 cons의 두번째 인자로 리스트 혹은 NIL이 들어올것입니다. (cons 1 nil)\n;;=> (1) (cons 2 (cons 1 nil))\n;;=> (2 1) (cons 3 (cons 2 (cons 1 nil)))\n;;=> (3 2 1) cons는 새로운 항목을 리스트의 시작 부분에 추가합니다. 비어있는 리스트 ( ) 는 NIL과 동일하며, ( ) == NIL 따라서 이렇게 작성할 수 있습니다: (cons 1 ())\n;;=> (1) (cons 2 (cons 1 ()))\n;;=> (2 1) (cons 3 (cons 2 (cons 1 ())))\n;;=> (3 2 1) 혼란스럽게 느껴진다면, 맞습니다, NIL에는 뭔가 특별한 능력이 있습니다. NIL은 키워드는 아니지만 자기 자신을 상수 값으로 가지는 리스프의 두개의 심볼 중 하나입니다. 또 다른 심볼은 T입니다. ( ) == NIL이란 것과 NIL이 스스로 평가된다는 것을 종합해보면, 이는 (quote ())를 ()로 쓸 수 있다는 것을 의미합니다. 그렇지 않았다면, 리스프는 빈 리스트를 처리하기 위해 평가 규칙에 예외를 추가해야 했을 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » CONS","id":"23","title":"CONS"},"24":{"body":"아마 여러분이 눈치챗다면, 중첩된 cons 폼으로도 리스트가 만들어질 수 있다는 것은 조금 지루할 수 도 있습니다. list 폼은 좀더 명료한 방법으로 동일한 일을 수행합니다: (list 1 2 3)\n;;=> (1 2 3) list는 여러 인자를 취할 수 있습니다. list는 함수이기에, 이는 인자를 평가합니다: (list 1 2 :hello \"there\" 3)\n;;=> (1 2 :HELLO \"there\" 3) (let ((a :this) (b :and) (c :that)) (list a 1 b c 2))\n;;=> (:THIS 1 :AND :THAT 2)","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » LIST","id":"24","title":"LIST"},"25":{"body":"리스트가 (첫번째와 나머지) 두 부분으로 만들어졌다고 가정한다면, 여러분은 first와 rest 두 연산자를 이용하여 리스트의 개별 원소들을 얻을 수 있습니다: (setq my-list (quote (1 2 3 4 5)))\n;;=> (1 2 3 4 5) (first my-list)\n;;=> 1 (rest my-list)\n;;=> (2 3 4 5) (first (rest my-list))\n;;=> 2 (rest (rest my-list))\n;;=> (3 4 5) (first (rest (rest my-list)))\n;;=> 3 (rest (rest (rest my-list)))\n;;=> (4 5) (first (rest (rest (rest my-list))))\n;;=> 4 first와 rest 함수를 이리저리 엮는 것은 분명 지루한 작업일 것입니다. 또, 이러한 접근 법은 프로그램에서 특정 요소만을 선택하고자 할때나 혹은 리스트의 길이가 무한일때 잘 먹히지 않을 것입니다. 4장[p 84] 에서 재귀 함수를 정의할때 이러한 문제를 어떻게 해결하는지 살펴볼 것입니다. 나중에 13장에서 [p 150], 리스프가 제공하는 리스트 혹은 시퀀스 속 요소를 선택할 수 있는 함수들을 살펴 볼 것입니다 first와 rest는 꽤 최근 동안 활약해온 car와 cdr 함수의 이름을 바꾸어 리스프에 추가된 것입니다. 초기 리스프 구현체 중 하나에서 car와 cdr의 이름이 유례됬고, 이 이름에 기반한 구현체가 이미 오래전에 바뀌었음에도 불구하고 수십년간 고수되었습니다","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » FIRST 와 REST","id":"25","title":"FIRST 와 REST"},"26":{"body":"cons list first rest car cdr nil , ( ) T","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » 짚고 넘어가기","id":"26","title":"짚고 넘어가기"},"27":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 레슨 05. 네이밍과 아이덴티티(Naming and Identity)","id":"27","title":"레슨 05. 네이밍과 아이덴티티(Naming and Identity)"},"28":{"body":"심볼은 단지 이름입니다. 심볼은 심볼 그 자체 입니다. 이는 리스프에서 특정 종류의 프로그램을 작성하는 것을 쉽게 만들어 줍니다. 예를들어, 프로그램으로 가족 관계를 나타내고자 한다면, 이와 같은 관계를 나타내는 데이터베이스를 만들 수 있습니다: (father John Barry)\n(son John Harold)\n(father John Susan)\n(mother Edith Barry)\n(mother Edith Susan) ... 각각의 관계를 리스트로 표현했습니다. 예로 (father John Barry)는 John은 Barry의 아버지라는 것을 의미합니다. 데이터베이스 속 리스트의 모든 요소는 심볼입니다. 예를들어 Harold는 Barry의 할아버지라는 것을 판별하기 위해 리스프 프로그램은 이 데이터베이스안에 있는 심볼들을 비교할 수 있습니다. (심볼이 없는)다른 언어 언어에서 이와 같은 프로그램을 작성하고자 한다면, 가족 구성원의 이름과 관계를 어떻게 표현해야할지 결정해야만 해야하며, 거기에 필요한 모든 동작들을 수행하는 코드를 작성해야만 할 것입니다(읽고, 출력하고, 비교하고, 할당하고, 기타등등). :TODO(pyoung) This is all built into Lisp, because symbols are a data type distinct from the objects they might be used to name.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼은 단지 이름","id":"28","title":"심볼은 단지 이름"},"29":{"body":"프로그램에서 이름이 같은 심볼은 항상 동일합니다. eq 테스트로 심볼을 비교할 수 있습니다: (eq 'a 'a)\n;;=> T (eq 'david 'a)\n;;=> NIL (eq 'David 'DAVID)\n;;=> T (setq zzz 'sleeper)\n;;=> SLEEPER (eq zzz 'sleeper)\n;;=> T 심볼 이름으로 대문자나 소문자를 사용하는 것은 문제가 되지 않습니다. 내부적으로, 리스프는 심볼 이름에 있는 모든 알파벳 문자들을 보통은 대문자로 바꾸며, 리스프 리더 속에 있는 플레그를 설정하여 이 기본 설정을 제어할 수 있습니다. 레슨 10 [p 65](또한 31장 [p 247]참조)에서 패키지에 대해 배운다면, 스펠은 같지만 동일하지는 않는 심볼 이름을 만들 수 있습니다. 지금 알아야 할것은 : 로 기술된 심볼은 특별하게 취급한다 라는 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼은 항상 유니크하다.","id":"29","title":"심볼은 항상 유니크하다."},"3":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 레슨 01. 필수 - 신택스(Essential Syntax)","id":"3","title":"레슨 01. 필수 - 신택스(Essential Syntax)"},"30":{"body":"심볼의 자기 자신을 표현하는 능력 역시 유용하지만, 더욱 일반적으로 사용되는 곳은 값의 이름을 붙일 때입니다. 이는 다른 프로그래밍 언어에서 변수와 함수 이름의 역활을 맡습니다. 리스프 심볼은 값의 이름이나, 함수의 이름을 지을때 사용됩니다. 리스프에서 특이한 점 중 하나는 심볼은 함수랑 변수의 값을 동시에 지닐 수 있다 라는 점 입니다: (setq first 'number-one)\n;;=> NUMBER-ONE (first (list 3 2 1))\n;;=> 3 first\n;;=> NUMBER-ONE 첫번째와 마지막 경우에서의 first는 변수 이며 , 두번째인 경우는 리스프에 의해 미리 정의된 함수 라는 점을 주의깊게 보시길 바랍니다. 리스프는 심볼이 보이는 곳에 기반하여 이 값이 무엇인지 결정합니다. 평가 규칙에 따라 값을 요청받으면, 리스프는 심볼의 변수 값을 찾습니다. 함수를 요청받으면, 리스프는 심볼의 함수 값을 찾습니다. 심볼은 변수나 함수의 값 외에 다른 값을 가질 수 있습니다. 심볼은 문서, 프로퍼티 리스트(property list) 혹은 출력에 대한 이름 값도 가질 수 있습니다. 심볼의 문서는 심볼의 설명을 위한 텍스트입니다. documentation 폼을 이용하거나 심볼의 값을 정의하는 몇몇 폼에서 문서를 만들 수 있습니다. 심볼은 다양한 의미를 가질 수 있으므로 함수 및 변수와 같이 여러 가지 의미 각각에 대한 문서를 만들 수 있습니다. 프로퍼티 리스트는 엔트리(entry)당 하나의 키를 지닌 자그마한 데이터 베이스와 같습니다. 레슨 10 [p 65]에서 이러한 심볼의 사용법을 살펴볼 것입니다. 출력 이름은 리스프에서 심볼을 출력하기 위해 사용하는 것입니다. 일반적으로 이 이름을 변경하지 않는게 좋습니다; 변경한다면, 나중에 리스프가 심볼을 읽고 다른 이름으로 출력하기에 혹여 다시 리스프가 그 이름을 읽을때 원래 심볼값과 다른 의미를 지녀 혼란을 야기할 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼로 값에 이름 붙일 수 있다.","id":"30","title":"심볼로 값에 이름 붙일 수 있다."},"31":{"body":"값은 하나 이상의 이름을 가질 수 있습니다. 즉, 하나 이상의 심볼이 값을 공유할 수 있다는 것입니다. 다른 언어에서 이러한 방식으로 동작하는 것으로는 포인터가 있습니다. 리스프는 프로그래머에게 포인터를 노출하지 않지만, 공유 오브젝트는 있습니다. eq 테스트로 오브젝트가 서로 같은지 확인할 수 있습니다. 다음에 나오는 것을 살펴보시기 바랍니다: (setq L1 (list 'a 'b 'c))\n;;=> (A B C) (setq L2 L1)\n;;=> (A B C) (eq L1 L2)\n;;=> T (setq L3 (list 'a 'b 'c))\n;;=> (A B C) (eq L3 L1)\n;;=> NIL 여기서, 동일한 값을 L1과 L2라 이름지엇기에, L1과 L2는 eq합니다. 다시 말하자면 (list 'a 'b 'c) 폼에 의해 생성된 값은 L1과 L2 두개의 이름을 갖습니다. (setq L2 L1) 폼은 \"L2의 값이 L1의 값이 되도록 해라\" 라고 지시합니다. 값의 복사를 말 하는게 아니라, 값 그 자체를 지칭합니다. 따라서 L1과 L2는 동일한 값 (처음 L1에 할당된 리스트 (A B C))을 공유합니다. 또한 L3도 리스트 (A B C)를 값으로 갖지만, 이는 L1과 L2가 공유하는 것과는 다른 새로운 리스트 입니다. 비록 L3의 값이 L1과 L2의 값과 동일한 것처럼 보이지만, 다른 list 폼에 의해 생성되었기에, 이는 다른 리스트입니다. 따라서, 서로 심볼 A, B, C로 구성된 리스트이지만, 다른 리스트이기에, (eq L3 L1)는 NIL이 됩니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 값은 하나 이상의 이름을 가질 수 있다","id":"31","title":"값은 하나 이상의 이름을 가질 수 있다"},"32":{"body":"eq","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 짚고 넘어가기","id":"32","title":"짚고 넘어가기"},"33":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 06. 바인딩 vs 할당 » 레슨 06. 바인딩 vs 할당","id":"33","title":"레슨 06. 바인딩 vs 할당"},"34":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 07. 필수 - 함수 정의 » 레슨 07. 필수 - 함수 정의","id":"34","title":"레슨 07. 필수 - 함수 정의"},"35":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 08. 필수 - 매크로 정의 » 레슨 08. 필수 - 매크로 정의","id":"35","title":"레슨 08. 필수 - 매크로 정의"},"36":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 09. 필수 - 다중 값 » 레슨 09. 필수 - 다중 값","id":"36","title":"레슨 09. 필수 - 다중 값"},"37":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 10. 프리뷰 - 다른 데이터 타입 » 레슨 10. 프리뷰 - 다른 데이터 타입","id":"37","title":"레슨 10. 프리뷰 - 다른 데이터 타입"},"38":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 11. 필수 - 입력과 출력 » 레슨 11. 필수 - 입력과 출력","id":"38","title":"레슨 11. 필수 - 입력과 출력"},"39":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 12. 필수 - 리더 매크로 » 레슨 12. 필수 - 리더 매크로","id":"39","title":"레슨 12. 필수 - 리더 매크로"},"4":{"body":"리스프에 대해 우선적으로 알아할 것입니다: 괄호로 둘러싸인 모든것은 리스트(list)이다. 여기 예가 있습니다: (1 2 3 4 5) (a b c) (cat 77 dog 89) 앞서 말씀드린대로, 괄호로 둘러싸인 것은 리스트입니다. 이와 같은 말을 들으면, 아마 다음과 같은 의문이 생길 것입니다: 괄호로 아무것도 없는것을 둘러싼다면? 괄호로 다른 리스트를 둘러싼다면? 두 경우 모두 대답은 같습니다. 여전히 리스트입니다. 따라서 다음 나오는 것들 또한 리스트입니다: () (()) ((())) ((a b c)) ((1 2) 3 4) (mouse (monitor 512 342) (keyboard US)) (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) 리스트가 아닌 유일한 경우는 다음 4개의 예제에 나온 것처럼, 좌/우측 괄호가 짝을 이루지 못하는 경우입니다: (a b c( ; (: 2개 // ): 0개 ((25 g) 34 ; (: 2개 // ): 1개 ((()) ; (: 3개 // ): 2개 (())) ; (: 2개 // ): 3개 크게 신경쓸 부분은 아닙니다: 리스프는 괄호가 일치하지 않으면 않다고 여러분에게 알려 줄 것입니다. 또, 리스프 프로그램을 작성하기 위해 사용하는 편집기 대부분은 자동적으로 일치하는 괄호를 찾는 방법을 제공해 줄 것입니다. 27장에서 편집기에 대해 살펴볼 수 있습니다 [p 227]. 리스프에서 리스트는 여러가지가 될 수 있습니다. 가장 일반적인 경우, 리스트는 프로그램이나 데이터가 될 수 있습니다. 그리고 리스트가 스스로 다른 리스트를 만들 수 있기에, 여러분은 복잡한 데이터의 조합과 여러 단계의 리스트 구조로 된 프로그램을 가질 수 있습니다. 이를 잘 이해하는 자에게는 리스프는 엄청난 유연성을 부여해 줄 것이며, 그렇지 않은 자에게는 많은 혼란을 줄 것입니다. 이번장을 계속해서 나아가면서 이러한 혼란을 없애도록 노력해 봅시다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 리스트는 괄호로 감싸져있다.","id":"4","title":"리스트는 괄호로 감싸져있다."},"5":{"body":"이제 여러분은 리스트를 구분할 수 있으며, 괄호 사이에 나타나지만 (리스트가 아닌)단어나 숫자인 것들에 대한 것들을 뭐라고 부르는지 알고 싶을 것입니다. 이러한 것들을 아톰(atom)이라 부릅니다. 그러므로, 다음 단어와 숫자들은 모두 아톰입니다: 1 25 342 mouse factorial x 리스프에서는 거의 모든 문자를 이용하여 아톰을 구성할 수 있습니다. 이제부터 문자, 숫자, 구두점 문자들이 있는데 이들 앞뒤에 공백(줄의 시작 또는 끝 포함) 또는 괄호가 있으면 이를 모두 아톰이라고 부르겠습니다. 다음 나오는 것들은 모두 아톰입니다: - * @comport funny%stuff 9^ case-2 만일 다른 프로그래밍에 대한 경험이 있다면, 한가지 주의해야 할 점은 보통 다른 언어에서 연산자로 예약된 문자들이 리스프에서 아톰으로써 쓰였다면 별다른 의미를 갖지 않는다는 것입니다. 예를들어, case-2는 수학적(arithmetic) 표현식 뺄샘이 들어간게 아니라 여기서는 그져 아톰 그 자체입니다. 공백이나 괄호로 무엇이 아톰인지 구분할 수 있으므로, 아톰과 괄호 혹은 괄호들 사이에 있는 공백을 없앨 수 있습니다. 그러므로, 다음 두 예제는 동일합니다: (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) (defun factorial(x)(if(eql x 0)1(* x(factorial(- x 1))))) 사실, 여러분은 절대로 두번째에 나타난것처럼 리스트를 작성해서는 안됩니다. 여러분은 가독성을 향상시키기 위해 리스트를 여러 라인으로 분리시키며 각 라인을 적절히 들여써야 합니다. 이 리스트는 사실 작은 프로그램이며, 다음과 같이 들여쓰면 리스퍼 프로그래머가 읽기 수월해 집니다: (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) 지금, 여러분은 이것이 무얼 의미하는지, 이러한 종류의 들여쓰기(indentation)가 무엇인지 대해 걱정할 필요가 없습니다. 이번장을 통해, 여러분은 들여쓰기가 들어간 많은 예제를 접하게 될 것입니다. 계속해서 보여드리는 예제와 함께, 가독성을 향상시키는 들여쓰는 방법에 대해 알려드릴 것입니다. 28장 [p 230]에서 적절한 들여쓰는 법을 포함하여, 리스프의 코딩 스타일에 대해 다룰 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 아톰(Atom)은 공백이나 괄호로 분리된 것입니다.","id":"5","title":"아톰(Atom)은 공백이나 괄호로 분리된 것입니다."},"6":{"body":"리스트(list) 아톰(atom)","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 짚고 넘어가기","id":"6","title":"짚고 넘어가기"},"7":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 레슨 02. 필수 - 평가(Essential Evaluation)","id":"7","title":"레슨 02. 필수 - 평가(Essential Evaluation)"},"8":{"body":"폼(form)은 아톰(atom) 혹은 리스트(list)가 될 수 있습니다. 중요한 것은 폼이 평가(evaluation)된다는 것입니다. 평가라는 것은 상당한 기술적 의미를 지니고 있으며, 이번 섹션에서 서서히 그 모습을 드러나게 될 것입니다. 폼이 아톰이라면 평가는 단순합니다. 리스프는 아톰을 마치 이름처럼 다루고, 값이 존재한다면 이름에 저장된 값을 얻습니다. 여러분은 아마도 왜 제가 아톰은 변수라고 직접적으로 말하지 않는지 의아할 것입니다. 명확하게 정의하지 않은 이유는 아톰은 변수이거나 상수의 값을 가질 수 있기 때문입니다. 그리고 아톰의 값은 경우에 따라 상수가 될 수 도 있습니다. 숫자는 아톰입니다(이 값은 상수입니다). 리스프는 숫자에 값을 저장 할 수 없습니다: 숫자는 자체적으로 평가됩니다. 정의가 완전히 내려지지 않은 새로운 용어를 소개합니다. 이제, 심볼을 값을 가질 수 있는 아톰이라고 여기기 바랍니다. 레슨 5[p 53]에서 심볼에 대해 더욱 자세히 살펴볼 것입니다. defconstant로 정의된 심볼은 상수 값을 지닙니다. 리스프는 변수처럼 아톰에 값을 저장한 다음, 값을 바꿀 수 없다라는 메모를 추가합니다. 패키지에 있는 키워드(keyword) 심볼은 스스로 평가됩니다. 패키지에 관한 것은 31장[p 247]에서 자세히 살펴볼 것입니다. 지금, 여러분이 알아야 할것은 (패키지 프리픽스라 불리는) : 문자로 시작하는 심볼은 키워드 심볼이라는 것입니다. 키워드 심볼은 그 자신을 값으로 갖습니다. 다양한 방식으로 심볼에서 값을 얻을 수 있습니다. 리스프는 실제로 심볼에 다양한 값을 저장합니다. 하나는 변수로서의 심볼의 값. 그리고 다른 하나는 함수로서 심볼입니다. 또 다른 것들은 해당 심볼에 대한 문서를 얻거나, 출력값으로 활용하거나, 연관리스트(associated list)처럼 속성값으로 쓰이기도 합니다. 이러한 것들에 대해 레슨 5 [p 53], 레슨 6 [p 56], 레슨 7 [p 59]에서 더욱 자세히 살펴볼 것입니다. 폼이 리스트라면, 첫번째 요소는 심볼이거나 람다(lambda)표현식이라 불리는 특별한 폼일 것입니다. (람다 표현식에 대한것은 잠시 뒤로 미루겠습니다.) 심볼은 함수의 이름을 짓습니다. 리스프에서 심볼 +, -, *, /는 일반적인 산술 연산자입니다: 덧셈, 빨셈, 곱셈, 나누기. 각 심볼은 산술 연산을 수행하는 함수와 연관되어있습니다. 따라서 리스프가 폼 (+ 2 3)을 평가하면, 이는 덧셈 함수+에 인자 2와 3을 적용시킬 것이며, 예상되듯이 결과 5를 반환할 것입니다. 함수로서 심볼 +가 인자들 앞에 있습니다. 이는 전위 표기법(prefix notation)입니다. 리스프가 리스트를 폼으로 평가하기 위해 무얼할 것인지 이해하기 위해선, 리스트의 첫번째 요소를 살펴보시기 바랍니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 폼(form)은 평가될 수 있습니다.","id":"8","title":"폼(form)은 평가될 수 있습니다."},"9":{"body":"주어진 리스트를 평가할때 리스프는 폼을 함수 호출로써 다룹니다. 지금부터 우리는 수 많은 리스프의 평가를 보게 될 것이며, 리스프의 입력과 이의 반응을 구분하기 위해 다음과 같이 시각적 표시를 할 것입니다: (어떠한 리스프 입력)\n;;=> 리스프 평가의 결과 ;;>> 리스프 출력\n;;<< 리스프에 입력\n;;>| 리스프의 에러 메시지 예: (+ 4 9)\n;;=> 13 (- 5 7)\n;;=> -2 (* 3 9)\n;;=> 27 (/ 15.0 2)\n;;=> 7.5 위 경우에서 보듯이, 평가된 폼은 리스트입니다. 각각의 첫번째 요소는 심볼이자 함수의 이름입니다. 남아있는 요소는 해당 함수의 인자입니다. 여기서, 인자는 모두 숫자이며, 숫자는 스스로 평가된다는 것을 알 수 있습니다. 여기 몇몇 예제가 더 있습니다: (atom 123)\n;;=> T (numberp 123)\n;;=> T (atom :foo)\n;;=> T (numberp :foo)\n;;=> NIL atom과 numberp는 술어(predicate)입니다. 술어는 참 혹은 거짓을 반환합니다. 리스프에서 NIL은 거짓을 나타냅니다. NIL이 아닌 것은 모두 참입니다. 딱히 의미있는 값이 아니면 술어는 관습적으로 참을 의미하는 T를 반환하게 되어 있습니다. atom은 인자가 리스프의 아톰이라면 T를 반환합니다. numberp는 인자가 숫자이면 T를 반환합니다. 위의 폼들을 평가하기 위해, 리스프는 우선 (좌측에서 우측으로) 인자를 평가하고, 그런 다음 첫번째 요소를 평가하여 함수를 얻은 후, 앞선 인자들을 함수에 적용합니다. 몇몇 예외가 있지만, 그것들은 이번 레슨의 끝부분에서 배울 것입니다. 리스프는 리스트 폼을 평가하기 위해 다음과 같은 작업을 수행합니다: 나머지 요소들을 좌측에서부터 우측으로 인자들을 평가한다. 첫번째 요소에서 함수를 얻는다. 함수에 인자들을 적용한다. 아톰 또한 리스프의 폼이라는 것을 명심하시기 바랍니다. 주어진 아톰이 평가되면, 리스프는 아톰이 지닌 값을 반환합니다: 17.95\n;;=> 17.95 :A-KEYWORD\n;;=> :A-KEYWORD *FEATURES*\n;;=> (:ANSI-CL :CLOS :COMMON-LISP) \"Hello, world!\"\n;;=> \"Hello, world!\" WHAT-IS-THIS?\n;;>| Error: Unbound variable 숫자와 키워드는 스스로 평가됩니다. 문자열도 그러합니다. *FEATURES*는 리스프에 의해 미리 정의된 변수입니다. 여러분의 시스템은 아마도 다른 값을 반환할 것입니다. 심볼 WHAT-IS-THIS?는 리스프에 의해 미리 정의되지 않아 값을 지니지 않으며, 이에 값을 얻을 수 없습니다. 시스템은 값 대신에 에러메시지로 응답할 것입니다. 에러 메시지 앞에 ;;>|를 붙여 표시하였습니다. 시스템에 따라 다른 에러 메시지가 출력될 수 있습니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수는 인자를 받을 수 있습니다.","id":"9","title":"함수는 인자를 받을 수 있습니다."}},"length":40,"save":true},"fields":["title","body","breadcrumbs"],"index":{"body":{"root":{"0":{")":{"1":{"df":1,"docs":{"5":{"tf":1.0}}},"df":0,"docs":{}},"1":{"df":1,"docs":{"3":{"tf":1.0}}},"2":{"df":1,"docs":{"7":{"tf":1.0}}},"3":{"df":2,"docs":{"1":{"tf":1.0},"16":{"tf":1.0}}},"4":{"df":1,"docs":{"22":{"tf":1.0}}},"5":{"df":1,"docs":{"27":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.0}}},"7":{"df":1,"docs":{"34":{"tf":1.0}}},"8":{"df":1,"docs":{"35":{"tf":1.0}}},"9":{"df":1,"docs":{"36":{"tf":1.0}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951}}},"1":{"0":{"df":3,"docs":{"29":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.0}}},"1":{"df":1,"docs":{"38":{"tf":1.0}}},"2":{".":{"0":{"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":3,"docs":{"1":{"tf":1.0},"20":{"tf":1.0},"39":{"tf":1.0}}},"3":{"df":3,"docs":{"19":{"tf":1.0},"25":{"tf":1.0},"9":{"tf":1.0}}},"5":{".":{"0":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}},"7":{".":{"9":{"5":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"8":{".":{"3":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"8":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}},"9":{"5":{"4":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"10":{"tf":1.4142135623730951},"17":{"tf":2.449489742783178},"19":{"tf":2.23606797749979},"23":{"tf":3.4641016151377544},"24":{"tf":2.449489742783178},"25":{"tf":1.7320508075688772},"30":{"tf":1.0},"4":{"tf":2.23606797749979},"5":{"tf":2.449489742783178}}},"2":{"0":{"df":0,"docs":{},"장":{"df":0,"docs":{},"에":{"df":0,"docs":{},"서":{"df":0,"docs":{},"는":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"2":{"7":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"3":{"0":{"df":1,"docs":{"5":{"tf":1.0}}},"8":{"df":1,"docs":{"10":{"tf":1.0}}},"df":1,"docs":{"20":{"tf":2.0}}},"4":{"7":{"df":2,"docs":{"29":{"tf":1.0},"8":{"tf":1.0}}},"df":0,"docs":{}},"5":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"7":{"df":2,"docs":{"4":{"tf":1.0},"9":{"tf":1.0}}},"8":{"df":1,"docs":{"5":{"tf":1.0}}},"9":{"df":1,"docs":{"10":{"tf":1.0}}},"df":13,"docs":{"10":{"tf":1.4142135623730951},"14":{"tf":1.0},"17":{"tf":3.1622776601683795},"18":{"tf":1.0},"19":{"tf":1.7320508075688772},"23":{"tf":2.8284271247461903},"24":{"tf":2.449489742783178},"25":{"tf":2.0},"30":{"tf":1.0},"4":{"tf":2.449489742783178},"5":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}},"df":0,"docs":{}}},"3":{"1":{"df":1,"docs":{"29":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}},"2":{"df":1,"docs":{"19":{"tf":1.0}}},"4":{"2":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"df":1,"docs":{"4":{"tf":1.0}}},"5":{".":{"9":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.0}}},"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":10,"docs":{"10":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":2.0},"24":{"tf":2.0},"25":{"tf":2.23606797749979},"30":{"tf":1.4142135623730951},"4":{"tf":2.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"4":{"2":{"df":1,"docs":{"12":{"tf":1.0}}},"df":6,"docs":{"1":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.4142135623730951},"25":{"tf":2.449489742783178},"4":{"tf":1.7320508075688772},"9":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}},"5":{"0":{"df":1,"docs":{"17":{"tf":1.0}}},"1":{"2":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"2":{".":{"8":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"8":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"8":{"tf":1.0}}},"7":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"8":{"tf":1.0}}},"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":1.4142135623730951},"25":{"tf":2.23606797749979},"4":{"tf":1.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"6":{"1":{"df":1,"docs":{"14":{"tf":1.0}}},"3":{"df":1,"docs":{"10":{"tf":1.0}}},"5":{"df":2,"docs":{"29":{"tf":1.0},"30":{"tf":1.0}}},"df":1,"docs":{"8":{"tf":1.0}}},"7":{".":{"5":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"2":{"df":1,"docs":{"10":{"tf":1.0}}},"7":{"df":2,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":1.0}}},"df":2,"docs":{"8":{"tf":1.0},"9":{"tf":1.0}}},"8":{"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"25":{"tf":1.0}}},"5":{"df":1,"docs":{"18":{"tf":1.0}}},"9":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}}},"df":2,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772}}},"9":{"7":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"9":{"df":2,"docs":{"17":{"tf":2.0},"19":{"tf":1.0}}},"df":2,"docs":{"5":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"5":{"tf":1.4142135623730951},"6":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":2.0}}}}}},"b":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}}},"df":6,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"20":{"tf":3.0},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}}},"y":{"df":1,"docs":{"0":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"5":{"tf":1.4142135623730951}}}},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"d":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"9":{"tf":1.0}},"o":{"df":1,"docs":{"9":{"tf":1.0}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"1":{"tf":1.0},"2":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"n":{"d":{"df":2,"docs":{"19":{"tf":3.1622776601683795},"21":{"tf":1.0}}},"df":3,"docs":{"23":{"tf":4.0},"24":{"tf":1.0},"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"28":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":2.23606797749979},"17":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"y":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":1,"docs":{"19":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"f":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.7320508075688772}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}},"h":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"q":{"df":3,"docs":{"29":{"tf":2.23606797749979},"31":{"tf":2.23606797749979},"32":{"tf":1.0}},"l":{"df":3,"docs":{"19":{"tf":2.8284271247461903},"4":{"tf":1.0},"5":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.0},"7":{"tf":1.0}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"7":{"tf":1.0},"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"x":{")":{"(":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":2.23606797749979}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.7320508075688772}}}}}}},"df":1,"docs":{"18":{"tf":2.449489742783178}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"19":{"tf":1.0},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":2.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"y":{"%":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}},"g":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":3,"docs":{"10":{"tf":1.4142135623730951},"24":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"i":{"df":1,"docs":{"10":{"tf":1.4142135623730951}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{":":{"/":{"/":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"8":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}}}},"l":{"1":{"df":1,"docs":{"31":{"tf":3.7416573867739413}}},"2":{"df":1,"docs":{"31":{"tf":3.1622776601683795}}},"3":{"df":1,"docs":{"31":{"tf":2.23606797749979}}},"a":{"df":0,"docs":{},"m":{"b":{"d":{"a":{"df":1,"docs":{"8":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":2.0}},"s":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"'":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":5,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.0},"2":{"tf":1.0},"28":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":8,"docs":{"24":{"tf":2.6457513110645907},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":2.0},"4":{"tf":1.0},"6":{"tf":1.0},"8":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"27":{"tf":1.0},"28":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"15":{"tf":1.0},"19":{"tf":1.4142135623730951},"23":{"tf":3.1622776601683795},"26":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.4142135623730951},"9":{"tf":1.7320508075688772}}}},"o":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"19":{"tf":2.0},"30":{"tf":1.7320508075688772}},"p":{"df":2,"docs":{"15":{"tf":1.0},"9":{"tf":2.0}}}}}},"df":0,"docs":{}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.7320508075688772}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}},"p":{"df":11,"docs":{"10":{"tf":1.7320508075688772},"12":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":2.0},"20":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"8":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}}}},"q":{"df":1,"docs":{"18":{"tf":2.0}},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":4,"docs":{"20":{"tf":2.449489742783178},"21":{"tf":1.0},"23":{"tf":1.0},"25":{"tf":1.0}},"e":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"r":{"df":1,"docs":{"18":{"tf":2.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"25":{"tf":4.0},"26":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"17":{"tf":1.7320508075688772}},"q":{"df":8,"docs":{"17":{"tf":3.7416573867739413},"18":{"tf":2.449489742783178},"20":{"tf":2.449489742783178},"21":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":2.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":1.7320508075688772}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":2.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"28":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"9":{"tf":2.449489742783178}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"o":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":2,"docs":{"17":{"tf":1.0},"28":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"28":{"tf":1.0}}}}}},"u":{"df":1,"docs":{"18":{"tf":1.7320508075688772}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"28":{"tf":1.0}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"10":{"tf":2.23606797749979},"15":{"tf":1.0}}}},"r":{"df":1,"docs":{"17":{"tf":4.0}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"17":{"tf":2.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"33":{"tf":1.0}}}},"w":{"df":1,"docs":{"18":{"tf":2.6457513110645907}},"e":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"x":{"(":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":3,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":2.0},"5":{"tf":3.3166247903554}}},"y":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"z":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}}}},"breadcrumbs":{"root":{"0":{")":{"1":{"df":1,"docs":{"5":{"tf":1.0}}},"df":0,"docs":{}},"1":{"df":4,"docs":{"3":{"tf":1.7320508075688772},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0}}},"2":{"df":9,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"7":{"tf":1.7320508075688772},"8":{"tf":1.0},"9":{"tf":1.0}}},"3":{"df":39,"docs":{"1":{"tf":1.7320508075688772},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":2.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.4142135623730951},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"21":{"tf":1.4142135623730951},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}},"4":{"df":5,"docs":{"22":{"tf":1.7320508075688772},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0}}},"5":{"df":6,"docs":{"27":{"tf":1.7320508075688772},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.7320508075688772}}},"7":{"df":1,"docs":{"34":{"tf":1.7320508075688772}}},"8":{"df":1,"docs":{"35":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"36":{"tf":1.7320508075688772}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951}}},"1":{"0":{"df":3,"docs":{"29":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.7320508075688772}}},"1":{"df":1,"docs":{"38":{"tf":1.7320508075688772}}},"2":{".":{"0":{"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":39,"docs":{"1":{"tf":1.7320508075688772},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"21":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":2.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}},"3":{"df":3,"docs":{"19":{"tf":1.0},"25":{"tf":1.0},"9":{"tf":1.0}}},"5":{".":{"0":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}},"7":{".":{"9":{"5":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"8":{".":{"3":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"8":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}},"9":{"5":{"4":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"10":{"tf":1.4142135623730951},"17":{"tf":2.449489742783178},"19":{"tf":2.23606797749979},"23":{"tf":3.4641016151377544},"24":{"tf":2.449489742783178},"25":{"tf":1.7320508075688772},"30":{"tf":1.0},"4":{"tf":2.23606797749979},"5":{"tf":2.449489742783178}}},"2":{"0":{"df":0,"docs":{},"장":{"df":0,"docs":{},"에":{"df":0,"docs":{},"서":{"df":0,"docs":{},"는":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"2":{"7":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"3":{"0":{"df":1,"docs":{"5":{"tf":1.0}}},"8":{"df":1,"docs":{"10":{"tf":1.0}}},"df":1,"docs":{"20":{"tf":2.0}}},"4":{"7":{"df":2,"docs":{"29":{"tf":1.0},"8":{"tf":1.0}}},"df":0,"docs":{}},"5":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"7":{"df":2,"docs":{"4":{"tf":1.0},"9":{"tf":1.0}}},"8":{"df":1,"docs":{"5":{"tf":1.0}}},"9":{"df":1,"docs":{"10":{"tf":1.0}}},"df":13,"docs":{"10":{"tf":1.4142135623730951},"14":{"tf":1.0},"17":{"tf":3.1622776601683795},"18":{"tf":1.0},"19":{"tf":1.7320508075688772},"23":{"tf":2.8284271247461903},"24":{"tf":2.449489742783178},"25":{"tf":2.0},"30":{"tf":1.0},"4":{"tf":2.449489742783178},"5":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}},"df":0,"docs":{}}},"3":{"1":{"df":1,"docs":{"29":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}},"2":{"df":1,"docs":{"19":{"tf":1.0}}},"4":{"2":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"df":1,"docs":{"4":{"tf":1.0}}},"5":{".":{"9":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.0}}},"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":10,"docs":{"10":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":2.0},"24":{"tf":2.0},"25":{"tf":2.23606797749979},"30":{"tf":1.4142135623730951},"4":{"tf":2.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"4":{"2":{"df":1,"docs":{"12":{"tf":1.0}}},"df":6,"docs":{"1":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.4142135623730951},"25":{"tf":2.449489742783178},"4":{"tf":1.7320508075688772},"9":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}},"5":{"0":{"df":1,"docs":{"17":{"tf":1.0}}},"1":{"2":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"2":{".":{"8":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"8":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"8":{"tf":1.0}}},"7":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"8":{"tf":1.0}}},"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":1.4142135623730951},"25":{"tf":2.23606797749979},"4":{"tf":1.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"6":{"1":{"df":1,"docs":{"14":{"tf":1.0}}},"3":{"df":1,"docs":{"10":{"tf":1.0}}},"5":{"df":2,"docs":{"29":{"tf":1.0},"30":{"tf":1.0}}},"df":1,"docs":{"8":{"tf":1.0}}},"7":{".":{"5":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"2":{"df":1,"docs":{"10":{"tf":1.0}}},"7":{"df":2,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":1.0}}},"df":2,"docs":{"8":{"tf":1.0},"9":{"tf":1.0}}},"8":{"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"25":{"tf":1.0}}},"5":{"df":1,"docs":{"18":{"tf":1.0}}},"9":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}}},"df":2,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772}}},"9":{"7":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"9":{"df":2,"docs":{"17":{"tf":2.0},"19":{"tf":1.0}}},"df":2,"docs":{"5":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"5":{"tf":1.7320508075688772},"6":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":2.0}}}}}},"b":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}}},"df":6,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"20":{"tf":3.0},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}}},"y":{"df":1,"docs":{"0":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"5":{"tf":1.4142135623730951}}}},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"d":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"9":{"tf":1.0}},"o":{"df":1,"docs":{"9":{"tf":1.0}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"1":{"tf":1.0},"2":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"n":{"d":{"df":2,"docs":{"19":{"tf":3.3166247903554},"21":{"tf":1.0}}},"df":3,"docs":{"23":{"tf":4.123105625617661},"24":{"tf":1.0},"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"28":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":2.23606797749979},"17":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"y":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":1,"docs":{"19":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"f":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.7320508075688772}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}},"h":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"q":{"df":3,"docs":{"29":{"tf":2.23606797749979},"31":{"tf":2.23606797749979},"32":{"tf":1.0}},"l":{"df":3,"docs":{"19":{"tf":2.8284271247461903},"4":{"tf":1.0},"5":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.4142135623730951},"7":{"tf":1.4142135623730951}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"7":{"tf":1.4142135623730951},"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"x":{")":{"(":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":2.23606797749979}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.7320508075688772}}}}}}},"df":1,"docs":{"18":{"tf":2.449489742783178}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"19":{"tf":1.0},"25":{"tf":3.0},"26":{"tf":1.0},"30":{"tf":2.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"8":{"tf":1.7320508075688772}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"y":{"%":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}},"g":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":3,"docs":{"10":{"tf":1.4142135623730951},"24":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"i":{"df":1,"docs":{"10":{"tf":1.4142135623730951}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{":":{"/":{"/":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"8":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}}}},"l":{"1":{"df":1,"docs":{"31":{"tf":3.7416573867739413}}},"2":{"df":1,"docs":{"31":{"tf":3.1622776601683795}}},"3":{"df":1,"docs":{"31":{"tf":2.23606797749979}}},"a":{"df":0,"docs":{},"m":{"b":{"d":{"a":{"df":1,"docs":{"8":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":2.0}},"s":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"'":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":5,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.0},"2":{"tf":1.0},"28":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":8,"docs":{"24":{"tf":2.8284271247461903},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":2.0},"4":{"tf":1.0},"6":{"tf":1.0},"8":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"27":{"tf":1.4142135623730951},"28":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"15":{"tf":1.0},"19":{"tf":1.4142135623730951},"23":{"tf":3.1622776601683795},"26":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.4142135623730951},"9":{"tf":1.7320508075688772}}}},"o":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"19":{"tf":2.0},"30":{"tf":1.7320508075688772}},"p":{"df":2,"docs":{"15":{"tf":1.0},"9":{"tf":2.0}}}}}},"df":0,"docs":{}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.7320508075688772}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}},"p":{"df":11,"docs":{"10":{"tf":1.7320508075688772},"12":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":2.0},"20":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"8":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}}}},"q":{"df":1,"docs":{"18":{"tf":2.0}},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":4,"docs":{"20":{"tf":2.6457513110645907},"21":{"tf":1.0},"23":{"tf":1.0},"25":{"tf":1.0}},"e":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"r":{"df":1,"docs":{"18":{"tf":2.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"25":{"tf":4.123105625617661},"26":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"17":{"tf":1.7320508075688772}},"q":{"df":8,"docs":{"17":{"tf":3.872983346207417},"18":{"tf":2.449489742783178},"20":{"tf":2.449489742783178},"21":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":2.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":1.7320508075688772}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":2.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"28":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"9":{"tf":2.449489742783178}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"o":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":2,"docs":{"17":{"tf":1.0},"28":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"28":{"tf":1.0}}}}}},"u":{"df":1,"docs":{"18":{"tf":1.7320508075688772}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"28":{"tf":1.0}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"10":{"tf":2.23606797749979},"15":{"tf":1.0}}}},"r":{"df":1,"docs":{"17":{"tf":4.0}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"17":{"tf":2.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"33":{"tf":1.7320508075688772}}}},"w":{"df":1,"docs":{"18":{"tf":2.6457513110645907}},"e":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"x":{"(":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":3,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":2.0},"5":{"tf":3.3166247903554}}},"y":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"z":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}}}},"title":{"root":{"0":{"1":{"df":1,"docs":{"3":{"tf":1.0}}},"2":{"df":1,"docs":{"7":{"tf":1.0}}},"3":{"df":2,"docs":{"1":{"tf":1.0},"16":{"tf":1.0}}},"4":{"df":1,"docs":{"22":{"tf":1.0}}},"5":{"df":1,"docs":{"27":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.0}}},"7":{"df":1,"docs":{"34":{"tf":1.0}}},"8":{"df":1,"docs":{"35":{"tf":1.0}}},"9":{"df":1,"docs":{"36":{"tf":1.0}}},"df":0,"docs":{}},"1":{"0":{"df":1,"docs":{"37":{"tf":1.0}}},"1":{"df":1,"docs":{"38":{"tf":1.0}}},"2":{"df":2,"docs":{"1":{"tf":1.0},"39":{"tf":1.0}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"19":{"tf":1.0}}},"df":1,"docs":{"23":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.0},"7":{"tf":1.0}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":1,"docs":{"7":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"8":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.0}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"24":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"27":{"tf":1.0}}}}},"df":0,"docs":{}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"q":{"df":1,"docs":{"17":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"df":0,"docs":{},"s":{"df":1,"docs":{"33":{"tf":1.0}}}}}}},"lang":"English","pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5"},"results_options":{"limit_results":30,"teaser_word_count":30},"search_options":{"bool":"OR","expand":true,"fields":{"body":{"boost":1},"breadcrumbs":{"boost":1},"title":{"boost":2}}}}); \ No newline at end of file +Object.assign(window.search, {"doc_urls":["Index.html#들어가며","ch03/ch03.html#03-12개의-레슨으로-배우는-필수-리스프","ch03/ch03.html#짚고-넘어가기","ch03/lesson_01.html#레슨-01-필수---신택스essential-syntax","ch03/lesson_01.html#리스트는-괄호로-감싸져있다","ch03/lesson_01.html#아톰atom은-공백이나-괄호로-분리된-것입니다","ch03/lesson_01.html#짚고-넘어가기","ch03/lesson_02.html#레슨-02-필수---평가essential-evaluation","ch03/lesson_02.html#폼form은-평가될-수-있습니다","ch03/lesson_02.html#함수는-인자를-받을-수-있습니다","ch03/lesson_02.html#함수는-다수의-값을-반환-할-수-있다","ch03/lesson_02.html#함수에서-인자를-수정하지-않는다","ch03/lesson_02.html#인자는-보통은-함수가-적용-전에-평가된다","ch03/lesson_02.html#인자들은-좌측에서-우측으로-순서대로-평가된다","ch03/lesson_02.html#스페셜-폼과-메크로는-인자의-평가하는-방법을-바꿀-수-있다","ch03/lesson_02.html#짚고-넘어가기","ch03/lesson_03.html#레슨-03-스페셜-폼과-매크로에-대한-예제","ch03/lesson_03.html#setq","ch03/lesson_03.html#let","ch03/lesson_03.html#cond","ch03/lesson_03.html#quote","ch03/lesson_03.html#짚고-넘어가기","ch03/lesson_04.html#레슨-04-조립과-분해","ch03/lesson_04.html#cons","ch03/lesson_04.html#list","ch03/lesson_04.html#first-와--rest","ch03/lesson_04.html#짚고-넘어가기","ch03/lesson_05.html#레슨-05-네이밍과-아이덴티티naming-and-identity","ch03/lesson_05.html#심볼은-단지-이름","ch03/lesson_05.html#심볼은-항상-유니크하다","ch03/lesson_05.html#심볼로-값에-이름-붙일-수-있다","ch03/lesson_05.html#값은-하나-이상의-이름을-가질-수-있다","ch03/lesson_05.html#짚고-넘어가기","ch03/lesson_06.html#레슨-06-바인딩-vs-할당","ch03/lesson_07.html#레슨-07-필수---함수-정의","ch03/lesson_08.html#레슨-08-필수---매크로-정의","ch03/lesson_09.html#레슨-09-필수---다중-값","ch03/lesson_10.html#레슨-10-프리뷰---다른-데이터-타입","ch03/lesson_11.html#레슨-11-필수---입력과-출력","ch03/lesson_12.html#레슨-12-필수---리더-매크로"],"index":{"documentStore":{"docInfo":{"0":{"body":48,"breadcrumbs":0,"title":0},"1":{"body":6,"breadcrumbs":4,"title":2},"10":{"body":22,"breadcrumbs":3,"title":0},"11":{"body":0,"breadcrumbs":3,"title":0},"12":{"body":2,"breadcrumbs":3,"title":0},"13":{"body":0,"breadcrumbs":3,"title":0},"14":{"body":5,"breadcrumbs":3,"title":0},"15":{"body":8,"breadcrumbs":3,"title":0},"16":{"body":1,"breadcrumbs":4,"title":1},"17":{"body":84,"breadcrumbs":4,"title":1},"18":{"body":100,"breadcrumbs":3,"title":0},"19":{"body":59,"breadcrumbs":4,"title":1},"2":{"body":5,"breadcrumbs":2,"title":0},"20":{"body":32,"breadcrumbs":4,"title":1},"21":{"body":3,"breadcrumbs":3,"title":0},"22":{"body":0,"breadcrumbs":4,"title":1},"23":{"body":51,"breadcrumbs":4,"title":1},"24":{"body":29,"breadcrumbs":4,"title":1},"25":{"body":64,"breadcrumbs":5,"title":2},"26":{"body":8,"breadcrumbs":3,"title":0},"27":{"body":0,"breadcrumbs":6,"title":3},"28":{"body":32,"breadcrumbs":3,"title":0},"29":{"body":24,"breadcrumbs":3,"title":0},"3":{"body":0,"breadcrumbs":6,"title":3},"30":{"body":23,"breadcrumbs":3,"title":0},"31":{"body":63,"breadcrumbs":3,"title":0},"32":{"body":1,"breadcrumbs":3,"title":0},"33":{"body":0,"breadcrumbs":6,"title":2},"34":{"body":0,"breadcrumbs":4,"title":1},"35":{"body":0,"breadcrumbs":4,"title":1},"36":{"body":0,"breadcrumbs":4,"title":1},"37":{"body":0,"breadcrumbs":4,"title":1},"38":{"body":0,"breadcrumbs":4,"title":1},"39":{"body":0,"breadcrumbs":4,"title":1},"4":{"body":51,"breadcrumbs":3,"title":0},"5":{"body":48,"breadcrumbs":4,"title":1},"6":{"body":2,"breadcrumbs":3,"title":0},"7":{"body":0,"breadcrumbs":6,"title":3},"8":{"body":29,"breadcrumbs":4,"title":1},"9":{"body":52,"breadcrumbs":3,"title":0}},"docs":{"0":{"body":"David Lamkins의 Successful Lisp 한국어 번역본입니다. 번역을 허락해주셔서 감사합니다 David Lamkins. 그의 웹사이트는 http://lamkins.net , github는 https://github.com/TieDyedDevil 입니다. 그의 책은 아마존 닷컴 이곳 에서 원서로 구입할 수 있으며 온라인 버전은 이곳 에서 볼 수 있습니다. Successful Lisp의 모든 저작권은 David Lamkins에게 있습니다. This is Korean translation version of David Lamkins's Successful Lisp. David Lamkins, Thank you for allowing me to translate your book. His personnal website is http://lamkins.net , github is https://github.com/TieDyedDevil . You can buy His original book on Amazon.com here and you can check his online version of successfull lisp here . David Lamkins owns All of Successful Lisp's copyright.","breadcrumbs":"들어가며 » 들어가며","id":"0","title":"들어가며"},"1":{"body":"이번 장은 여러분에게 리스프를 시작하기에 앞서 알아야 할 모든것을 가르칠 것입니다. 언어의 코어 기능들을 모두 다룰 것입니다. 여러분이 이 코어를 리스프 자체라 생각하고, 그렇지 않은 것은 하나의 거대한 표준 라이브러리라 생각하셨으면 합니다. 책을 읽은 후 이를 배경으로, Common Lisp : The Language, 2nd Edition과 같은 메뉴얼을 참조하면, 더욱 편하게 리스프의 남은 부분들을 배울 수 있을 것입니다. 여러분은 이번 장을 한번에 쭉 읽어야 합니다. 이따금 다음 단락이나 다음 장에대해 언급하겠지만, 이번장을 이해하기 위해서 반드시 그러한 참고들을 따를 필요는 없습니다. 이번 장을 끝낼 무렵, 여러분은 이미 리스프 시스템의 키보드 앞에 앉아 4장을 진행하고 있을 것 입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 03. 12개의 레슨으로 배우는 필수 리스프","id":"1","title":"03. 12개의 레슨으로 배우는 필수 리스프"},"10":{"body":"우리는 종종 다수의 값을 반환하는 함수를 갖길 원합니다. 예를들어, 데이터베이스 전체를 살펴보는 함수는 요구하는 값과 완료상태코드를 동시에 반환해야 합니다. 이를 행할 방법으로는 해당 결과값을 저장할 위치 자체를 함수에 전달하는 것입니다; 가능은 하지만, 리스프 프로그램에서는 매우 드믄 일입니다. 또 다른 접근법은 결과와 상태코드를 하나로 묶어 하나의 반환 값으로 만드는 것입니다. 리스프는 구조체[p 72]를 포함하여 여러분에게 이를 수행할 다양한 방식을 제공합니다. 다만, 이와같이 하나로 묶는 방식은 잘못하면 가비지(29장 [p 238] 참조)가 생성되어 프로그램 작동 속도가 느려지게 만들 수 있기에 숙련된 리스프 프로그래머는 이와 같은 작업을 피합니다. 함수에서 다수의 값을 반환하는 올바른 법은 values 폼을 이용하는 것입니다. 잠시 후에 함수 컨텍스트안에서의 VALUES의 사용법을 [p 63]에서 살펴보도록 하겠습니다. 지금은, 리스프가 values 폼을 평가할때 무슨 일이 벌어지는지 살펴봅시다: (values 1 2 3 :hi \"Hello\")\n;;=> 1\n;;=> 2\n;;=> 3\n;;=> :HI\n;;=> \"Hello\" 리스프가 values 폼으로 각 인자에 대한 값을 반환하는 것을 확인할 수 있습니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수는 다수의 값을 반환 할 수 있다.","id":"10","title":"함수는 다수의 값을 반환 할 수 있다."},"11":{"body":"앞서, 결과값을 저장할 위치 자체를 인자로 함수에 넘길 수 있으며, 함수가 그 위치의 값을 바꿀 수도 있다고 말한 바가 있습니다. 다른 언어들은 이를 일반적인 레파토리로 말할지라도, 리스프 프로그램에서 매우 드문 일입니다. 저장할 위치에 키워드가 아닌 심볼이나 구조체 같은 것을 넣을 수 는 있습니다. 심볼을 넣을 경우, 함수는 심볼에 새로운 값을 넣는 코드를 수행해야만 합니다. 구조체를 넣을 경우 구조체의 각 값을 올바르게 변경하는 코드를 수행해야만 합니다. 이러한 작업 자체도 복잡하고 이렇게 작성된 프로그램을 이해하는 것도 어렵습니다. 따라서 리스프 프로그래머들은 일반적으로 인자를 수정하지 않고, 인자는 인자, 결과는 결과로 구분된 함수를 작성합니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수에서 인자를 수정하지 않는다.","id":"11","title":"함수에서 인자를 수정하지 않는다."},"12":{"body":"리스프가 함수를 평가하면, 앞서 봤던것처럼[p 42], 항상 모든 인자를 우선적으로 평가합니다. 불행히도, 모든 규칙에는 예외가 있으며, (곧 보게될 것처럼)이 규칙도 예외는 아닙니다... 문제는 리스프가 함수의 인자를 평가하지 않을 수 있다라는 점이 아니라, 리스트 폼은 함수 호출이 아닐 수 도 있다라는 점입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 인자는 (보통은) 함수가 적용 전에 평가된다.","id":"12","title":"인자는 (보통은) 함수가 적용 전에 평가된다."},"13":{"body":"리스트 폼이 함수를 호출하면, 이의 인자는 항상 좌측에서 우측으로 순서대로 평가됩니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 인자들은 좌측에서 우측으로 순서대로 평가된다","id":"13","title":"인자들은 좌측에서 우측으로 순서대로 평가된다"},"14":{"body":"리스트 폼이 함수 호출이 아닐 수 도 있다 라고 했는데, 그럼 무엇이 될 수 있을까요? 2가지 경우가 있지만, 결과는 같습니다: 몇몇 인자는 평가되며 몇몇은 평가가 안됩니다. 폼이나 폼이 아니냐에 달려있습니다. 이 예외에 대해서만 알면 됩니다. 다행히도, 대부분의 리스프 시스템은 한두번의 키 입력으로 이에 대한 온라인 문서를 여러분에게 보여줄 것입니다. 모든 인자가 평가되지 않는 폼은 두가지가 있습니다: 스페셜 폼과 매크로. 리스프는 몇몇 스페셜 폼을 미리 정의해 두었습니다. 언어 자체의 주요 기능이기에 여러분만의 스페셜 폼을 추가할 수는 없습니다. 또 리스프는 몇몇 매크로를 미리 정의해두었습니다. 단, 매크로는 저희가 작성할 수 있습니다. 리스프의 매크로를 이용하면 언어의 강력한 힘을 이용하여 우리만의 기능을 추가 할 수 있습니다. 이 장의 뒷 부분에서 간략하게 간단한 매크로를 작성해 볼 것입니다 [p 61]. 20장에서는[p 188] 복잡한 매크로에 대해 다뤄볼 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 스페셜 폼과 메크로는 인자의 평가하는 방법을 바꿀 수 있다.","id":"14","title":"스페셜 폼과 메크로는 인자의 평가하는 방법을 바꿀 수 있다."},"15":{"body":"폼(form) 키워드(:) 전위 표기법(prefix notation) atom numberp NIL T values","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 짚고 넘어가기","id":"15","title":"짚고 넘어가기"},"16":{"body":"원문 이제 스페셜 폼과 매크로에 대해 살펴보도록 하겠습니다. 다음 4개의 레슨들을 거쳐, 가장 기본적인 리스프 데이터 형식, 리스트를 이용하여 간단한 함수를 작성케 해주는 레파토리를 구축할 것입니다. 나머지 장에서는 더욱 복잡한 프로그램 구조와 데이터형식을 다룰 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » 레슨 03. 스페셜 폼과 매크로에 대한 예제","id":"16","title":"레슨 03. 스페셜 폼과 매크로에 대한 예제"},"17":{"body":"이전에, 여러분께 리스프가 심볼 폼을 평가하여 변수의 값을 받온다고 말했습니다. setq는 이 변수의 값을 설정하는 방법을 제공합니다: (setq my-name \"David\")\n;;=> \"David\" my-name\n;;=> \"David\" (setq a-variable 57)\n;;=> 57 a-variable\n;;=> 57 (setq a-variable :a-keyword)\n;;=> :A-KEYWORD setq의 첫번째 인자는 심볼입니다. 이는 평가되지 않습니다. 두번째 인자는 변수의 값으로 할당됩니다. setq는 마지막 인자의 값을 반환합니다. setq는 심볼 그 자체를 값으로 할당하고자 하기에 첫번째 인자를 평가하지 않습니다. 만일 setq가 첫번째 인자를 평가한다면, (할당될 심볼이 있어야 하기에)해당 인자의 값은 심볼이여야 합니다. set 폼이 그러한 일을 합니다: (setq var-1 'var-2)\n;;=> VAR-2 var-1\n;;=> VAR-2 var-2\n;;>| Error: Unbound variable :TODO(pyoung) (set var-1 99)\n;;=> 99 var-1\n;;=> VAR-2 VAR-2\n;;=> 99 첫번째 폼에서 '을 발견하셨나요? 이것은 다음 폼 var-2 가 평가되는 것을 방지합니다. 이번 레슨 후반에, quote[p 50]를 살펴볼때, 더욱 자세히 설명하도록 하겠습니다. 이번 예제에서는, 우선 var-1의 값을 심볼 var-2로 설정하였습니다. 그 후 var-2의 값을 확인하였고, 아무런 값도 가지지 않았다는 것을 확인하였습니다. 다음으로, (setq가 아닌) set을 이용하여 var-1의 값인 심볼 var-2에 값 99를 할당하였습니다. 사실 setq 폼은 심볼과 값을 번갈아 사용하여 짝수개의 인자를 취할 수 있습니다: (setq month \"June\" day 8 year 1954)\n;;=> 1954 month\n;;=> \"June\" day\n;;=> 8 year\n;;=> 1954 setq는 좌측에서 우측으로 할당을 수행하고, 맨 우측에 있는 값을 반환합니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » SETQ","id":"17","title":"SETQ"},"18":{"body":"let 폼은 이전에 봐왔던 것보다 좀 더 복잡해 보입니다. let폼은 중첩된 리스트를 이용하지만, 스페셜 폼은 아니기에 특정 요소만 평가됩니다: (let ((a 3) (b 4) (c 5)) (* (+ a b) c))\n;;=> 35 a\n;;>| Error: Unbound variable b\n;;>| Error: Unbound variable c\n;;>| Error: Unbound variable 위에 있는 let 폼은 심볼 a, b, c의 값을 정의 후, 이를 이용하여 산술 계산을 하였습니다. 또한 이 계산의 결과가 바로 let 폼의 결과입니다. let에서 정의된 변수가 폼을 평가한 후에는 어떠한 값도 지니지 않는다는 점을 주목하시기 바랍니다. 대게, let은 다음과 같이 생겼습니다: (let (bindings) forms) bindings에는 임의의 수의 두개의 원소를 지닌 리스트가 있으며 (각 리스트는 심볼과 값을 지닙니다), forms에는 임의의 수의 리스프 폼이 있습니다. forms의 평가를 위해, bindings에 의해 수립된 값을 이용합니다. let은 마지막 폼에 의해 반환된 값(들)을 반환합니다. 들여쓰기는 let의 동작에 영향을 미치진 않지만, 적절한 들여쓰기는 가독성을 향상시킵니다. 다음 두 동일한 폼을 살펴보시기 바랍니다: (let ((p 52.8) (q 35.9) (r (f 12.07))) (g 18.3) (f p) (f q) (g r t)) (let ((p 52.8) (q 35.9) (r (f 12.07))) (g 18.3) (f p) (f q) (g r t)) 첫번째 경우, 들여쓰기로 어떤게 바인딩이며 어떤게 폼인지 명확하게 나타납니다. 독자가 let 폼의 두 부분에서 수행된 서로 다른 규칙에 대해 자세히 알지 못할지라도, 들여쓰기는 차이를 나타냅니다. 두번째경우, 여러분은 어디에서 바인딩이 끝나며 폼이 시작되는지 알고자 한다면, 괄호를 세어야만 할 것입니다. 더욱 안좋은 것은, 들여쓰기의 부제는 let 폼의 두 부분에 의해 수행되는 역활의 차이점에 대해 시각적 단서(visual cues)를 없애버립니다. setq를 이용하여 변수를 정의하고 let 폼에서 동일한 변수 이름을 사용한다면, let을 평가하는 동안 let에 의해 정의된 값이 (setq에 의해 정의된)다른 값을 대체할 것입니다: (setq a 89)\n;;=> 89 a\n;;=> 89 (let ((a 3)) (+ a 2))\n;;=> 5 a\n;;=> 89 좌에서 우로 순서대로 값의 할당이 이루어지는 setq와 달리, let은 모두 동일한 시간에 변수를 바인드합니다. (setq w 77)\n;;=> 77 (let ((w 8) (x w)) (+ w x))\n;;=> 85 let은 w를 8로 x는 w로 바인드 하였습니다. 동일한 시각에 이러한 바인딩이 발생하였으므로 w는 여전히 값 77을 지니게 됩니다. 리스프는 순서대로 바인딩을 수행하는 let*이라는 let의 변종을 지녔습니다. (setq u 37)\n;;=> 37 (let* ((v 4) (u v)) (+ u v))\n;;=> 8","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » LET","id":"18","title":"LET"},"19":{"body":"cond 매크로는 조건적으로 리스프 폼을 평가하도록 합니다. let처럼, cond는 폼의 다양한 부분을 구분짓기 위해 괄호를 이용합니다. 이 예제를 살펴보시기 바랍니다: (let ((a 1) (b 2) (c 1) (d 1)) (cond ((eql a b) 1) ((eql a c) \"First form\" 2) ((eql a d) 3)))\n;;=> 2 위에 정의된 cond 폼에서 3개의 절을 정의하였습니다. 각 절은 테스트 폼으로 시작하는 리스트이며 원하는 만큼의 바디(body) 폼이 뒷따라 나옵니다. 바디 폼은 테스트가 성공일시 실행되는 코드 입니다. 순차적으로 절이 선택됩니다 - 하나의 테스트가 성공하면 그에 대응하는 바디 폼이 평가되고 그 바디 폼의 마지막 값이 cond 폼의 값이 됩니다. cond는 여러 절을 다룰 수 있기에, 스페셜 폼 if에 비해 범용적입니다. 이제 예제에서 어떤일이 수행되는지 살펴보도록 하겠습니다. 두 인자가 동일하거나, 동일한 숫자면 eql 은 T를 반환합니다(17장[p 174]에서 다루게될 미묘한 다름이 있긴 합니다). 3개의 테스트중 두개만 실행되었습니다. 첫번째 (eql a b)는 NIL을 반환합니다. 그러므로, 1을 포함하는 절은 넘어갑니다. 두번째 절은 (eql a c)를 테스트하며 이는 참입니다. 이 테스트가 NIL이 아닌 값을 반환하기에, 절의 나머지 부분이 평가가 되어, 마지막 폼의 값이 cond의 값으로 반환된 다음, 최종적으로 let의 반환값으로써 반환됩니다. 세번째 절은 이미 이전 절이 선택되었기에 평가되지 않습니다 - 절들은 순서대로 선택됩니다. 관습적으로 cond의 마지막 절의 테스트 폼으로 T를 사용합니다. 이는 다른 절들이 모두 테스트에 실패를 하면 마지막 절의 바디 폼이 평가된다는 것을 보증합니다. 기본 값을 반환하거나 기타 다른 적절한 작업을 수행하기 위해 이 마지막 절을 활용할 수 있습니다. 여기 예제가 있습니다: (let ((a 32)) (cond ((eql a 13) \"An unlucky number\") ((eql a 99) \"A lucky number\") (t \"Nothing special about this number\")))\n;;=> \"Nothing special about this number\"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » COND","id":"19","title":"COND"},"2":{"body":"Common Lisp : The Language, 2nd Edition","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 짚고 넘어가기","id":"2","title":"짚고 넘어가기"},"20":{"body":"가끔씩 리스프의 평가 규칙을 적용시키지 않고 싶을 때가 있을것입니다.. 이러한 예 중 하나를 꼽자면, 함수 호출의 인자로써 심볼의 값보다 심볼 그 자체를 쓰고 싶을 때입니다: (setq a 97)\n;;=> 97 a\n;;=> 97 (setq b 23)\n;;=> 23 (setq a b)\n;;=> 23 a\n;;=> 23 (setq a (quote b))\n;;=> B a\n;;=> B 차이점은 (setq a b)에서 사용된 b의 값 과 (setq a (quote b))에서의 심볼 b입니다. quote 폼은 매우 자주 사용되며, 리스프는 약칭 표기를 제공합니다: (QUOTE form) == 'form 리스프는 리더 매크로를 통해 '와 quote를 동일하게 처리합니다. 레슨 12 [p 82]에서 어떻게 여러분만의 리더 매크로를 정의할 수 있는지 간략하게 살펴볼 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » QUOTE","id":"20","title":"QUOTE"},"21":{"body":"setq let cond ', quote","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » 짚고 넘어가기","id":"21","title":"짚고 넘어가기"},"22":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » 레슨 04. 조립과 분해","id":"22","title":"레슨 04. 조립과 분해"},"23":{"body":"cons는 리스트의 가장 기본적인 구성 요소입니다. 이는 함수므로 이의 인자들을 평가합니다. 리스트를 만들때에는 cons의 두번째 인자로 리스트 혹은 NIL이 들어올것입니다. (cons 1 nil)\n;;=> (1) (cons 2 (cons 1 nil))\n;;=> (2 1) (cons 3 (cons 2 (cons 1 nil)))\n;;=> (3 2 1) cons는 새로운 항목을 리스트의 시작 부분에 추가합니다. 비어있는 리스트 ( ) 는 NIL과 동일하며, ( ) == NIL 따라서 이렇게 작성할 수 있습니다: (cons 1 ())\n;;=> (1) (cons 2 (cons 1 ()))\n;;=> (2 1) (cons 3 (cons 2 (cons 1 ())))\n;;=> (3 2 1) 혼란스럽게 느껴진다면, 맞습니다, NIL에는 뭔가 특별한 능력이 있습니다. NIL은 키워드는 아니지만 자기 자신을 상수 값으로 가지는 리스프의 두개의 심볼 중 하나입니다. 또 다른 심볼은 T입니다. ( ) == NIL이란 것과 NIL이 스스로 평가된다는 것을 종합해보면, 이는 (quote ())를 ()로 쓸 수 있다는 것을 의미합니다. 그렇지 않았다면, 리스프는 빈 리스트를 처리하기 위해 평가 규칙에 예외를 추가해야 했을 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » CONS","id":"23","title":"CONS"},"24":{"body":"아마 여러분이 눈치챗다면, 중첩된 cons 폼으로도 리스트가 만들어질 수 있다는 것은 조금 지루할 수 도 있습니다. list 폼은 좀더 명료한 방법으로 동일한 일을 수행합니다: (list 1 2 3)\n;;=> (1 2 3) list는 여러 인자를 취할 수 있습니다. list는 함수이기에, 이는 인자를 평가합니다: (list 1 2 :hello \"there\" 3)\n;;=> (1 2 :HELLO \"there\" 3) (let ((a :this) (b :and) (c :that)) (list a 1 b c 2))\n;;=> (:THIS 1 :AND :THAT 2)","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » LIST","id":"24","title":"LIST"},"25":{"body":"리스트가 (첫번째와 나머지) 두 부분으로 만들어졌다고 가정한다면, 여러분은 first와 rest 두 연산자를 이용하여 리스트의 개별 원소들을 얻을 수 있습니다: (setq my-list (quote (1 2 3 4 5)))\n;;=> (1 2 3 4 5) (first my-list)\n;;=> 1 (rest my-list)\n;;=> (2 3 4 5) (first (rest my-list))\n;;=> 2 (rest (rest my-list))\n;;=> (3 4 5) (first (rest (rest my-list)))\n;;=> 3 (rest (rest (rest my-list)))\n;;=> (4 5) (first (rest (rest (rest my-list))))\n;;=> 4 first와 rest 함수를 이리저리 엮는 것은 분명 지루한 작업일 것입니다. 또, 이러한 접근 법은 프로그램에서 특정 요소만을 선택하고자 할때나 혹은 리스트의 길이가 무한일때 잘 먹히지 않을 것입니다. 4장[p 84] 에서 재귀 함수를 정의할때 이러한 문제를 어떻게 해결하는지 살펴볼 것입니다. 나중에 13장에서 [p 150], 리스프가 제공하는 리스트 혹은 시퀀스 속 요소를 선택할 수 있는 함수들을 살펴 볼 것입니다 first와 rest는 꽤 최근 동안 활약해온 car와 cdr 함수의 이름을 바꾸어 리스프에 추가된 것입니다. 초기 리스프 구현체 중 하나에서 car와 cdr의 이름이 유례됬고, 이 이름에 기반한 구현체가 이미 오래전에 바뀌었음에도 불구하고 수십년간 고수되었습니다","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » FIRST 와 REST","id":"25","title":"FIRST 와 REST"},"26":{"body":"cons list first rest car cdr nil , ( ) T","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » 짚고 넘어가기","id":"26","title":"짚고 넘어가기"},"27":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 레슨 05. 네이밍과 아이덴티티(Naming and Identity)","id":"27","title":"레슨 05. 네이밍과 아이덴티티(Naming and Identity)"},"28":{"body":"심볼은 단지 이름입니다. 심볼은 심볼 그 자체 입니다. 이는 리스프에서 특정 종류의 프로그램을 작성하는 것을 쉽게 만들어 줍니다. 예를들어, 프로그램으로 가족 관계를 나타내고자 한다면, 이와 같은 관계를 나타내는 데이터베이스를 만들 수 있습니다: (father John Barry)\n(son John Harold)\n(father John Susan)\n(mother Edith Barry)\n(mother Edith Susan) ... 각각의 관계를 리스트로 표현했습니다. 예로 (father John Barry)는 John은 Barry의 아버지라는 것을 의미합니다. 데이터베이스 속 리스트의 모든 요소는 심볼입니다. 예를들어 Harold는 Barry의 할아버지라는 것을 판별하기 위해 리스프 프로그램은 이 데이터베이스안에 있는 심볼들을 비교할 수 있습니다. (심볼이 없는)다른 언어 언어에서 이와 같은 프로그램을 작성하고자 한다면, 가족 구성원의 이름과 관계를 어떻게 표현해야할지 결정해야만 해야하며, 거기에 필요한 모든 동작들을 수행하는 코드를 작성해야만 할 것입니다(읽고, 출력하고, 비교하고, 할당하고, 기타등등). :TODO(pyoung) This is all built into Lisp, because symbols are a data type distinct from the objects they might be used to name.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼은 단지 이름","id":"28","title":"심볼은 단지 이름"},"29":{"body":"프로그램에서 이름이 같은 심볼은 항상 동일합니다. eq 테스트로 심볼을 비교할 수 있습니다: (eq 'a 'a)\n;;=> T (eq 'david 'a)\n;;=> NIL (eq 'David 'DAVID)\n;;=> T (setq zzz 'sleeper)\n;;=> SLEEPER (eq zzz 'sleeper)\n;;=> T 심볼 이름으로 대문자나 소문자를 사용하는 것은 문제가 되지 않습니다. 내부적으로, 리스프는 심볼 이름에 있는 모든 알파벳 문자들을 보통은 대문자로 바꾸며, 리스프 리더 속에 있는 플레그를 설정하여 이 기본 설정을 제어할 수 있습니다. 레슨 10 [p 65](또한 31장 [p 247]참조)에서 패키지에 대해 배운다면, 스펠은 같지만 동일하지는 않는 심볼 이름을 만들 수 있습니다. 지금 알아야 할것은 : 로 기술된 심볼은 특별하게 취급한다 라는 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼은 항상 유니크하다.","id":"29","title":"심볼은 항상 유니크하다."},"3":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 레슨 01. 필수 - 신택스(Essential Syntax)","id":"3","title":"레슨 01. 필수 - 신택스(Essential Syntax)"},"30":{"body":"심볼의 자기 자신을 표현하는 능력 역시 유용하지만, 더욱 일반적으로 사용되는 곳은 값의 이름을 붙일 때입니다. 이는 다른 프로그래밍 언어에서 변수와 함수 이름의 역활을 맡습니다. 리스프 심볼은 값의 이름이나, 함수의 이름을 지을때 사용됩니다. 리스프에서 특이한 점 중 하나는 심볼은 함수랑 변수의 값을 동시에 지닐 수 있다 라는 점 입니다: (setq first 'number-one)\n;;=> NUMBER-ONE (first (list 3 2 1))\n;;=> 3 first\n;;=> NUMBER-ONE 첫번째와 마지막 경우에서의 first는 변수 이며 , 두번째인 경우는 리스프에 의해 미리 정의된 함수 라는 점을 주의깊게 보시길 바랍니다. 리스프는 심볼이 보이는 곳에 기반하여 이 값이 무엇인지 결정합니다. 평가 규칙에 따라 값을 요청받으면, 리스프는 심볼의 변수 값을 찾습니다. 함수를 요청받으면, 리스프는 심볼의 함수 값을 찾습니다. 심볼은 변수나 함수의 값 외에 다른 값을 가질 수 있습니다. 심볼은 문서, 프로퍼티 리스트(property list) 혹은 출력에 대한 이름 값도 가질 수 있습니다. 심볼의 문서는 심볼의 설명을 위한 텍스트입니다. documentation 폼을 이용하거나 심볼의 값을 정의하는 몇몇 폼에서 문서를 만들 수 있습니다. 심볼은 다양한 의미를 가질 수 있으므로 함수 및 변수와 같이 여러 가지 의미 각각에 대한 문서를 만들 수 있습니다. 프로퍼티 리스트는 엔트리(entry)당 하나의 키를 지닌 자그마한 데이터 베이스와 같습니다. 레슨 10 [p 65]에서 이러한 심볼의 사용법을 살펴볼 것입니다. 출력 이름은 리스프에서 심볼을 출력하기 위해 사용하는 것입니다. 일반적으로 이 이름을 변경하지 않는게 좋습니다; 변경한다면, 나중에 리스프가 심볼을 읽고 다른 이름으로 출력하기에 혹여 다시 리스프가 그 이름을 읽을때 원래 심볼값과 다른 의미를 지녀 혼란을 야기할 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼로 값에 이름 붙일 수 있다.","id":"30","title":"심볼로 값에 이름 붙일 수 있다."},"31":{"body":"값은 하나 이상의 이름을 가질 수 있습니다. 즉, 하나 이상의 심볼이 값을 공유할 수 있다는 것입니다. 다른 언어에서 이러한 방식으로 동작하는 것으로는 포인터가 있습니다. 리스프는 프로그래머에게 포인터를 노출하지 않지만, 공유 오브젝트는 있습니다. eq 테스트로 오브젝트가 서로 같은지 확인할 수 있습니다. 다음에 나오는 것을 살펴보시기 바랍니다: (setq L1 (list 'a 'b 'c))\n;;=> (A B C) (setq L2 L1)\n;;=> (A B C) (eq L1 L2)\n;;=> T (setq L3 (list 'a 'b 'c))\n;;=> (A B C) (eq L3 L1)\n;;=> NIL 여기서, 동일한 값을 L1과 L2라 이름지엇기에, L1과 L2는 eq합니다. 다시 말하자면 (list 'a 'b 'c) 폼에 의해 생성된 값은 L1과 L2 두개의 이름을 갖습니다. (setq L2 L1) 폼은 \"L2의 값이 L1의 값이 되도록 해라\" 라고 지시합니다. 값의 복사를 말 하는게 아니라, 값 그 자체를 지칭합니다. 따라서 L1과 L2는 동일한 값 (처음 L1에 할당된 리스트 (A B C))을 공유합니다. 또한 L3도 리스트 (A B C)를 값으로 갖지만, 이는 L1과 L2가 공유하는 것과는 다른 새로운 리스트 입니다. 비록 L3의 값이 L1과 L2의 값과 동일한 것처럼 보이지만, 다른 list 폼에 의해 생성되었기에, 이는 다른 리스트입니다. 따라서, 서로 심볼 A, B, C로 구성된 리스트이지만, 다른 리스트이기에, (eq L3 L1)는 NIL이 됩니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 값은 하나 이상의 이름을 가질 수 있다","id":"31","title":"값은 하나 이상의 이름을 가질 수 있다"},"32":{"body":"eq","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 짚고 넘어가기","id":"32","title":"짚고 넘어가기"},"33":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 06. 바인딩 vs 할당 » 레슨 06. 바인딩 vs 할당","id":"33","title":"레슨 06. 바인딩 vs 할당"},"34":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 07. 필수 - 함수 정의 » 레슨 07. 필수 - 함수 정의","id":"34","title":"레슨 07. 필수 - 함수 정의"},"35":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 08. 필수 - 매크로 정의 » 레슨 08. 필수 - 매크로 정의","id":"35","title":"레슨 08. 필수 - 매크로 정의"},"36":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 09. 필수 - 다중 값 » 레슨 09. 필수 - 다중 값","id":"36","title":"레슨 09. 필수 - 다중 값"},"37":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 10. 프리뷰 - 다른 데이터 타입 » 레슨 10. 프리뷰 - 다른 데이터 타입","id":"37","title":"레슨 10. 프리뷰 - 다른 데이터 타입"},"38":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 11. 필수 - 입력과 출력 » 레슨 11. 필수 - 입력과 출력","id":"38","title":"레슨 11. 필수 - 입력과 출력"},"39":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 12. 필수 - 리더 매크로 » 레슨 12. 필수 - 리더 매크로","id":"39","title":"레슨 12. 필수 - 리더 매크로"},"4":{"body":"리스프에 대해 우선적으로 알아할 것입니다: 괄호로 둘러싸인 모든것은 리스트(list)이다. 여기 예가 있습니다: (1 2 3 4 5) (a b c) (cat 77 dog 89) 앞서 말씀드린대로, 괄호로 둘러싸인 것은 리스트입니다. 이와 같은 말을 들으면, 아마 다음과 같은 의문이 생길 것입니다: 괄호로 아무것도 없는것을 둘러싼다면? 괄호로 다른 리스트를 둘러싼다면? 두 경우 모두 대답은 같습니다. 여전히 리스트입니다. 따라서 다음 나오는 것들 또한 리스트입니다: () (()) ((())) ((a b c)) ((1 2) 3 4) (mouse (monitor 512 342) (keyboard US)) (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) 리스트가 아닌 유일한 경우는 다음 4개의 예제에 나온 것처럼, 좌/우측 괄호가 짝을 이루지 못하는 경우입니다: (a b c( ; (: 2개 // ): 0개 ((25 g) 34 ; (: 2개 // ): 1개 ((()) ; (: 3개 // ): 2개 (())) ; (: 2개 // ): 3개 크게 신경쓸 부분은 아닙니다: 리스프는 괄호가 일치하지 않으면 않다고 여러분에게 알려 줄 것입니다. 또, 리스프 프로그램을 작성하기 위해 사용하는 편집기 대부분은 자동적으로 일치하는 괄호를 찾는 방법을 제공해 줄 것입니다. 27장에서 편집기에 대해 살펴볼 수 있습니다 [p 227]. 리스프에서 리스트는 여러가지가 될 수 있습니다. 가장 일반적인 경우, 리스트는 프로그램이나 데이터가 될 수 있습니다. 그리고 리스트가 스스로 다른 리스트를 만들 수 있기에, 여러분은 복잡한 데이터의 조합과 여러 단계의 리스트 구조로 된 프로그램을 가질 수 있습니다. 이를 잘 이해하는 자에게는 리스프는 엄청난 유연성을 부여해 줄 것이며, 그렇지 않은 자에게는 많은 혼란을 줄 것입니다. 이번장을 계속해서 나아가면서 이러한 혼란을 없애도록 노력해 봅시다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 리스트는 괄호로 감싸져있다.","id":"4","title":"리스트는 괄호로 감싸져있다."},"5":{"body":"이제 여러분은 리스트를 구분할 수 있으며, 괄호 사이에 나타나지만 (리스트가 아닌)단어나 숫자인 것들에 대한 것들을 뭐라고 부르는지 알고 싶을 것입니다. 이러한 것들을 아톰(atom)이라 부릅니다. 그러므로, 다음 단어와 숫자들은 모두 아톰입니다: 1 25 342 mouse factorial x 리스프에서는 거의 모든 문자를 이용하여 아톰을 구성할 수 있습니다. 이제부터 문자, 숫자, 구두점 문자들이 있는데 이들 앞뒤에 공백(줄의 시작 또는 끝 포함) 또는 괄호가 있으면 이를 모두 아톰이라고 부르겠습니다. 다음 나오는 것들은 모두 아톰입니다: - * @comport funny%stuff 9^ case-2 만일 다른 프로그래밍에 대한 경험이 있다면, 한가지 주의해야 할 점은 보통 다른 언어에서 연산자로 예약된 문자들이 리스프에서 아톰으로써 쓰였다면 별다른 의미를 갖지 않는다는 것입니다. 예를들어, case-2는 수학적(arithmetic) 표현식 뺄샘이 들어간게 아니라 여기서는 그져 아톰 그 자체입니다. 공백이나 괄호로 무엇이 아톰인지 구분할 수 있으므로, 아톰과 괄호 혹은 괄호들 사이에 있는 공백을 없앨 수 있습니다. 그러므로, 다음 두 예제는 동일합니다: (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) (defun factorial(x)(if(eql x 0)1(* x(factorial(- x 1))))) 사실, 여러분은 절대로 두번째에 나타난것처럼 리스트를 작성해서는 안됩니다. 여러분은 가독성을 향상시키기 위해 리스트를 여러 라인으로 분리시키며 각 라인을 적절히 들여써야 합니다. 이 리스트는 사실 작은 프로그램이며, 다음과 같이 들여쓰면 리스퍼 프로그래머가 읽기 수월해 집니다: (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) 지금, 여러분은 이것이 무얼 의미하는지, 이러한 종류의 들여쓰기(indentation)가 무엇인지 대해 걱정할 필요가 없습니다. 이번장을 통해, 여러분은 들여쓰기가 들어간 많은 예제를 접하게 될 것입니다. 계속해서 보여드리는 예제와 함께, 가독성을 향상시키는 들여쓰는 방법에 대해 알려드릴 것입니다. 28장 [p 230]에서 적절한 들여쓰는 법을 포함하여, 리스프의 코딩 스타일에 대해 다룰 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 아톰(Atom)은 공백이나 괄호로 분리된 것입니다.","id":"5","title":"아톰(Atom)은 공백이나 괄호로 분리된 것입니다."},"6":{"body":"리스트(list) 아톰(atom)","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 짚고 넘어가기","id":"6","title":"짚고 넘어가기"},"7":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 레슨 02. 필수 - 평가(Essential Evaluation)","id":"7","title":"레슨 02. 필수 - 평가(Essential Evaluation)"},"8":{"body":"폼(form)은 아톰(atom) 혹은 리스트(list)가 될 수 있습니다. 중요한 것은 폼이 평가(evaluation)된다는 것입니다. 평가라는 것은 상당한 기술적 의미를 지니고 있으며, 이번 섹션에서 서서히 그 모습을 드러나게 될 것입니다. 폼이 아톰이라면 평가는 단순합니다. 리스프는 아톰을 마치 이름처럼 다루고, 값이 존재한다면 이름에 저장된 값을 얻습니다. 여러분은 아마도 왜 제가 아톰은 변수라고 직접적으로 말하지 않는지 의아할 것입니다. 명확하게 정의하지 않은 이유는 아톰은 변수이거나 상수의 값을 가질 수 있기 때문입니다. 그리고 아톰의 값은 경우에 따라 상수가 될 수 도 있습니다. 숫자는 아톰입니다(이 값은 상수입니다). 리스프는 숫자에 값을 저장 할 수 없습니다: 숫자는 자체적으로 평가됩니다. 정의가 완전히 내려지지 않은 새로운 용어를 소개합니다. 이제, 심볼을 값을 가질 수 있는 아톰이라고 여기기 바랍니다. 레슨 5[p 53]에서 심볼에 대해 더욱 자세히 살펴볼 것입니다. defconstant로 정의된 심볼은 상수 값을 지닙니다. 리스프는 변수처럼 아톰에 값을 저장한 다음, 값을 바꿀 수 없다라는 메모를 추가합니다. 패키지에 있는 키워드(keyword) 심볼은 스스로 평가됩니다. 패키지에 관한 것은 31장[p 247]에서 자세히 살펴볼 것입니다. 지금, 여러분이 알아야 할것은 (패키지 프리픽스라 불리는) : 문자로 시작하는 심볼은 키워드 심볼이라는 것입니다. 키워드 심볼은 그 자신을 값으로 갖습니다. 다양한 방식으로 심볼에서 값을 얻을 수 있습니다. 리스프는 실제로 심볼에 다양한 값을 저장합니다. 하나는 변수로서의 심볼의 값. 그리고 다른 하나는 함수로서 심볼입니다. 또 다른 것들은 해당 심볼에 대한 문서를 얻거나, 출력값으로 활용하거나, 연관리스트(associated list)처럼 속성값으로 쓰이기도 합니다. 이러한 것들에 대해 레슨 5 [p 53], 레슨 6 [p 56], 레슨 7 [p 59]에서 더욱 자세히 살펴볼 것입니다. 폼이 리스트라면, 첫번째 요소는 심볼이거나 람다(lambda)표현식이라 불리는 특별한 폼일 것입니다. (람다 표현식에 대한것은 잠시 뒤로 미루겠습니다.) 심볼은 함수의 이름을 짓습니다. 리스프에서 심볼 +, -, *, /는 일반적인 산술 연산자입니다: 덧셈, 빨셈, 곱셈, 나누기. 각 심볼은 산술 연산을 수행하는 함수와 연관되어있습니다. 따라서 리스프가 폼 (+ 2 3)을 평가하면, 이는 덧셈 함수+에 인자 2와 3을 적용시킬 것이며, 예상되듯이 결과 5를 반환할 것입니다. 함수로서 심볼 +가 인자들 앞에 있습니다. 이는 전위 표기법(prefix notation)입니다. 리스프가 리스트를 폼으로 평가하기 위해 무얼할 것인지 이해하기 위해선, 리스트의 첫번째 요소를 살펴보시기 바랍니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 폼(form)은 평가될 수 있습니다.","id":"8","title":"폼(form)은 평가될 수 있습니다."},"9":{"body":"주어진 리스트를 평가할때 리스프는 폼을 함수 호출로써 다룹니다. 지금부터 우리는 수 많은 리스프의 평가를 보게 될 것이며, 리스프의 입력과 이의 반응을 구분하기 위해 다음과 같이 시각적 표시를 할 것입니다: (어떠한 리스프 입력)\n;;=> 리스프 평가의 결과 ;;>> 리스프 출력\n;;<< 리스프에 입력\n;;>| 리스프의 에러 메시지 예: (+ 4 9)\n;;=> 13 (- 5 7)\n;;=> -2 (* 3 9)\n;;=> 27 (/ 15.0 2)\n;;=> 7.5 위 경우에서 보듯이, 평가된 폼은 리스트입니다. 각각의 첫번째 요소는 심볼이자 함수의 이름입니다. 남아있는 요소는 해당 함수의 인자입니다. 여기서, 인자는 모두 숫자이며, 숫자는 스스로 평가된다는 것을 알 수 있습니다. 여기 몇몇 예제가 더 있습니다: (atom 123)\n;;=> T (numberp 123)\n;;=> T (atom :foo)\n;;=> T (numberp :foo)\n;;=> NIL atom과 numberp는 술어(predicate)입니다. 술어는 참 혹은 거짓을 반환합니다. 리스프에서 NIL은 거짓을 나타냅니다. NIL이 아닌 것은 모두 참입니다. 딱히 의미있는 값이 아니면 술어는 관습적으로 참을 의미하는 T를 반환하게 되어 있습니다. atom은 인자가 리스프의 아톰이라면 T를 반환합니다. numberp는 인자가 숫자이면 T를 반환합니다. 위의 폼들을 평가하기 위해, 리스프는 우선 (좌측에서 우측으로) 인자를 평가하고, 그런 다음 첫번째 요소를 평가하여 함수를 얻은 후, 앞선 인자들을 함수에 적용합니다. 몇몇 예외가 있지만, 그것들은 이번 레슨의 끝부분에서 배울 것입니다. 리스프는 리스트 폼을 평가하기 위해 다음과 같은 작업을 수행합니다: 나머지 요소들을 좌측에서부터 우측으로 인자들을 평가한다. 첫번째 요소에서 함수를 얻는다. 함수에 인자들을 적용한다. 아톰 또한 리스프의 폼이라는 것을 명심하시기 바랍니다. 주어진 아톰이 평가되면, 리스프는 아톰이 지닌 값을 반환합니다: 17.95\n;;=> 17.95 :A-KEYWORD\n;;=> :A-KEYWORD *FEATURES*\n;;=> (:ANSI-CL :CLOS :COMMON-LISP) \"Hello, world!\"\n;;=> \"Hello, world!\" WHAT-IS-THIS?\n;;>| Error: Unbound variable 숫자와 키워드는 스스로 평가됩니다. 문자열도 그러합니다. *FEATURES*는 리스프에 의해 미리 정의된 변수입니다. 여러분의 시스템은 아마도 다른 값을 반환할 것입니다. 심볼 WHAT-IS-THIS?는 리스프에 의해 미리 정의되지 않아 값을 지니지 않으며, 이에 값을 얻을 수 없습니다. 시스템은 값 대신에 에러메시지로 응답할 것입니다. 에러 메시지 앞에 ;;>|를 붙여 표시하였습니다. 시스템에 따라 다른 에러 메시지가 출력될 수 있습니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수는 인자를 받을 수 있습니다.","id":"9","title":"함수는 인자를 받을 수 있습니다."}},"length":40,"save":true},"fields":["title","body","breadcrumbs"],"index":{"body":{"root":{"0":{")":{"1":{"df":1,"docs":{"5":{"tf":1.0}}},"df":0,"docs":{}},"1":{"df":1,"docs":{"3":{"tf":1.0}}},"2":{"df":1,"docs":{"7":{"tf":1.0}}},"3":{"df":2,"docs":{"1":{"tf":1.0},"16":{"tf":1.0}}},"4":{"df":1,"docs":{"22":{"tf":1.0}}},"5":{"df":1,"docs":{"27":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.0}}},"7":{"df":1,"docs":{"34":{"tf":1.0}}},"8":{"df":1,"docs":{"35":{"tf":1.0}}},"9":{"df":1,"docs":{"36":{"tf":1.0}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951}}},"1":{"0":{"df":3,"docs":{"29":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.0}}},"1":{"df":1,"docs":{"38":{"tf":1.0}}},"2":{".":{"0":{"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":3,"docs":{"1":{"tf":1.0},"20":{"tf":1.0},"39":{"tf":1.0}}},"3":{"df":3,"docs":{"19":{"tf":1.0},"25":{"tf":1.0},"9":{"tf":1.0}}},"5":{".":{"0":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}},"7":{".":{"9":{"5":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"8":{".":{"3":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"8":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}},"9":{"5":{"4":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"10":{"tf":1.4142135623730951},"17":{"tf":2.449489742783178},"19":{"tf":2.23606797749979},"23":{"tf":3.4641016151377544},"24":{"tf":2.449489742783178},"25":{"tf":1.7320508075688772},"30":{"tf":1.0},"4":{"tf":2.23606797749979},"5":{"tf":2.449489742783178}}},"2":{"0":{"df":0,"docs":{},"장":{"df":0,"docs":{},"에":{"df":0,"docs":{},"서":{"df":0,"docs":{},"는":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"2":{"7":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"3":{"0":{"df":1,"docs":{"5":{"tf":1.0}}},"8":{"df":1,"docs":{"10":{"tf":1.0}}},"df":1,"docs":{"20":{"tf":2.0}}},"4":{"7":{"df":2,"docs":{"29":{"tf":1.0},"8":{"tf":1.0}}},"df":0,"docs":{}},"5":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"7":{"df":2,"docs":{"4":{"tf":1.0},"9":{"tf":1.0}}},"8":{"df":1,"docs":{"5":{"tf":1.0}}},"9":{"df":1,"docs":{"10":{"tf":1.0}}},"df":13,"docs":{"10":{"tf":1.4142135623730951},"14":{"tf":1.0},"17":{"tf":3.1622776601683795},"18":{"tf":1.0},"19":{"tf":1.7320508075688772},"23":{"tf":2.8284271247461903},"24":{"tf":2.449489742783178},"25":{"tf":2.0},"30":{"tf":1.0},"4":{"tf":2.449489742783178},"5":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}},"df":0,"docs":{}}},"3":{"1":{"df":1,"docs":{"29":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}},"2":{"df":1,"docs":{"19":{"tf":1.0}}},"4":{"2":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"df":1,"docs":{"4":{"tf":1.0}}},"5":{".":{"9":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.0}}},"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":10,"docs":{"10":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":2.0},"24":{"tf":2.0},"25":{"tf":2.23606797749979},"30":{"tf":1.4142135623730951},"4":{"tf":2.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"4":{"2":{"df":1,"docs":{"12":{"tf":1.0}}},"df":6,"docs":{"1":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.4142135623730951},"25":{"tf":2.449489742783178},"4":{"tf":1.7320508075688772},"9":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}},"5":{"0":{"df":1,"docs":{"17":{"tf":1.0}}},"1":{"2":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"2":{".":{"8":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"8":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"8":{"tf":1.0}}},"7":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"8":{"tf":1.0}}},"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":1.4142135623730951},"25":{"tf":2.23606797749979},"4":{"tf":1.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"6":{"1":{"df":1,"docs":{"14":{"tf":1.0}}},"3":{"df":1,"docs":{"10":{"tf":1.0}}},"5":{"df":2,"docs":{"29":{"tf":1.0},"30":{"tf":1.0}}},"df":1,"docs":{"8":{"tf":1.0}}},"7":{".":{"5":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"2":{"df":1,"docs":{"10":{"tf":1.0}}},"7":{"df":2,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":1.0}}},"df":2,"docs":{"8":{"tf":1.0},"9":{"tf":1.0}}},"8":{"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"25":{"tf":1.0}}},"5":{"df":1,"docs":{"18":{"tf":1.0}}},"9":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}}},"df":2,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772}}},"9":{"7":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"9":{"df":2,"docs":{"17":{"tf":2.0},"19":{"tf":1.0}}},"df":2,"docs":{"5":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"5":{"tf":1.4142135623730951},"6":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":2.0}}}}}},"b":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}}},"df":6,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"20":{"tf":3.0},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}}},"y":{"df":1,"docs":{"0":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"5":{"tf":1.4142135623730951}}}},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"d":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"9":{"tf":1.0}},"o":{"df":1,"docs":{"9":{"tf":1.0}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"1":{"tf":1.0},"2":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"n":{"d":{"df":2,"docs":{"19":{"tf":3.1622776601683795},"21":{"tf":1.0}}},"df":3,"docs":{"23":{"tf":4.0},"24":{"tf":1.0},"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"28":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":2.449489742783178},"17":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"y":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":1,"docs":{"19":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"f":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.7320508075688772}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}},"h":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"q":{"df":3,"docs":{"29":{"tf":2.23606797749979},"31":{"tf":2.23606797749979},"32":{"tf":1.0}},"l":{"df":3,"docs":{"19":{"tf":2.8284271247461903},"4":{"tf":1.0},"5":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.0},"7":{"tf":1.0}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"7":{"tf":1.0},"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"x":{")":{"(":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":2.23606797749979}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.7320508075688772}}}}}}},"df":1,"docs":{"18":{"tf":2.449489742783178}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"19":{"tf":1.0},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":2.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"y":{"%":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}},"g":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":3,"docs":{"10":{"tf":1.4142135623730951},"24":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"i":{"df":1,"docs":{"10":{"tf":1.4142135623730951}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{":":{"/":{"/":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"8":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}}}},"l":{"1":{"df":1,"docs":{"31":{"tf":3.7416573867739413}}},"2":{"df":1,"docs":{"31":{"tf":3.1622776601683795}}},"3":{"df":1,"docs":{"31":{"tf":2.23606797749979}}},"a":{"df":0,"docs":{},"m":{"b":{"d":{"a":{"df":1,"docs":{"8":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":2.23606797749979}},"s":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":5,"docs":{"0":{"tf":2.0},"1":{"tf":1.0},"2":{"tf":1.0},"28":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":8,"docs":{"24":{"tf":2.6457513110645907},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":2.0},"4":{"tf":1.0},"6":{"tf":1.0},"8":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"27":{"tf":1.0},"28":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"15":{"tf":1.0},"19":{"tf":1.4142135623730951},"23":{"tf":3.1622776601683795},"26":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.4142135623730951},"9":{"tf":1.7320508075688772}}}},"o":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"19":{"tf":2.0},"30":{"tf":1.7320508075688772}},"p":{"df":2,"docs":{"15":{"tf":1.0},"9":{"tf":2.0}}}}}},"df":0,"docs":{}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.7320508075688772}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}},"p":{"df":11,"docs":{"10":{"tf":1.7320508075688772},"12":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":2.0},"20":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"8":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}}}},"q":{"df":1,"docs":{"18":{"tf":2.0}},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":4,"docs":{"20":{"tf":2.449489742783178},"21":{"tf":1.0},"23":{"tf":1.0},"25":{"tf":1.0}},"e":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"r":{"df":1,"docs":{"18":{"tf":2.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"25":{"tf":4.0},"26":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"17":{"tf":1.7320508075688772}},"q":{"df":8,"docs":{"17":{"tf":3.7416573867739413},"18":{"tf":2.449489742783178},"20":{"tf":2.449489742783178},"21":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":2.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":1.7320508075688772}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":2.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"28":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"9":{"tf":2.449489742783178}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"o":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":2,"docs":{"17":{"tf":1.0},"28":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"28":{"tf":1.0}}}}}},"u":{"df":1,"docs":{"18":{"tf":1.7320508075688772}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"28":{"tf":1.0}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"10":{"tf":2.23606797749979},"15":{"tf":1.0}}}},"r":{"df":1,"docs":{"17":{"tf":4.0}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"17":{"tf":2.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"33":{"tf":1.0}}}},"w":{"df":1,"docs":{"18":{"tf":2.6457513110645907}},"e":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"x":{"(":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":3,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":2.0},"5":{"tf":3.3166247903554}}},"y":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"z":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}}}},"breadcrumbs":{"root":{"0":{")":{"1":{"df":1,"docs":{"5":{"tf":1.0}}},"df":0,"docs":{}},"1":{"df":4,"docs":{"3":{"tf":1.7320508075688772},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0}}},"2":{"df":9,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"7":{"tf":1.7320508075688772},"8":{"tf":1.0},"9":{"tf":1.0}}},"3":{"df":39,"docs":{"1":{"tf":1.7320508075688772},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":2.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.4142135623730951},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"21":{"tf":1.4142135623730951},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}},"4":{"df":5,"docs":{"22":{"tf":1.7320508075688772},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0}}},"5":{"df":6,"docs":{"27":{"tf":1.7320508075688772},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.7320508075688772}}},"7":{"df":1,"docs":{"34":{"tf":1.7320508075688772}}},"8":{"df":1,"docs":{"35":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"36":{"tf":1.7320508075688772}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951}}},"1":{"0":{"df":3,"docs":{"29":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.7320508075688772}}},"1":{"df":1,"docs":{"38":{"tf":1.7320508075688772}}},"2":{".":{"0":{"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":39,"docs":{"1":{"tf":1.7320508075688772},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"21":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":2.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}},"3":{"df":3,"docs":{"19":{"tf":1.0},"25":{"tf":1.0},"9":{"tf":1.0}}},"5":{".":{"0":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}},"7":{".":{"9":{"5":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"8":{".":{"3":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"8":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}},"9":{"5":{"4":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"10":{"tf":1.4142135623730951},"17":{"tf":2.449489742783178},"19":{"tf":2.23606797749979},"23":{"tf":3.4641016151377544},"24":{"tf":2.449489742783178},"25":{"tf":1.7320508075688772},"30":{"tf":1.0},"4":{"tf":2.23606797749979},"5":{"tf":2.449489742783178}}},"2":{"0":{"df":0,"docs":{},"장":{"df":0,"docs":{},"에":{"df":0,"docs":{},"서":{"df":0,"docs":{},"는":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"2":{"7":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"3":{"0":{"df":1,"docs":{"5":{"tf":1.0}}},"8":{"df":1,"docs":{"10":{"tf":1.0}}},"df":1,"docs":{"20":{"tf":2.0}}},"4":{"7":{"df":2,"docs":{"29":{"tf":1.0},"8":{"tf":1.0}}},"df":0,"docs":{}},"5":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"7":{"df":2,"docs":{"4":{"tf":1.0},"9":{"tf":1.0}}},"8":{"df":1,"docs":{"5":{"tf":1.0}}},"9":{"df":1,"docs":{"10":{"tf":1.0}}},"df":13,"docs":{"10":{"tf":1.4142135623730951},"14":{"tf":1.0},"17":{"tf":3.1622776601683795},"18":{"tf":1.0},"19":{"tf":1.7320508075688772},"23":{"tf":2.8284271247461903},"24":{"tf":2.449489742783178},"25":{"tf":2.0},"30":{"tf":1.0},"4":{"tf":2.449489742783178},"5":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}},"df":0,"docs":{}}},"3":{"1":{"df":1,"docs":{"29":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}},"2":{"df":1,"docs":{"19":{"tf":1.0}}},"4":{"2":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"df":1,"docs":{"4":{"tf":1.0}}},"5":{".":{"9":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.0}}},"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":10,"docs":{"10":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":2.0},"24":{"tf":2.0},"25":{"tf":2.23606797749979},"30":{"tf":1.4142135623730951},"4":{"tf":2.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"4":{"2":{"df":1,"docs":{"12":{"tf":1.0}}},"df":6,"docs":{"1":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.4142135623730951},"25":{"tf":2.449489742783178},"4":{"tf":1.7320508075688772},"9":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}},"5":{"0":{"df":1,"docs":{"17":{"tf":1.0}}},"1":{"2":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"2":{".":{"8":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"8":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"8":{"tf":1.0}}},"7":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"8":{"tf":1.0}}},"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":1.4142135623730951},"25":{"tf":2.23606797749979},"4":{"tf":1.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"6":{"1":{"df":1,"docs":{"14":{"tf":1.0}}},"3":{"df":1,"docs":{"10":{"tf":1.0}}},"5":{"df":2,"docs":{"29":{"tf":1.0},"30":{"tf":1.0}}},"df":1,"docs":{"8":{"tf":1.0}}},"7":{".":{"5":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"2":{"df":1,"docs":{"10":{"tf":1.0}}},"7":{"df":2,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":1.0}}},"df":2,"docs":{"8":{"tf":1.0},"9":{"tf":1.0}}},"8":{"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"25":{"tf":1.0}}},"5":{"df":1,"docs":{"18":{"tf":1.0}}},"9":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}}},"df":2,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772}}},"9":{"7":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"9":{"df":2,"docs":{"17":{"tf":2.0},"19":{"tf":1.0}}},"df":2,"docs":{"5":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"5":{"tf":1.7320508075688772},"6":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":2.0}}}}}},"b":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}}},"df":6,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"20":{"tf":3.0},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}}},"y":{"df":1,"docs":{"0":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"5":{"tf":1.4142135623730951}}}},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"d":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"9":{"tf":1.0}},"o":{"df":1,"docs":{"9":{"tf":1.0}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"1":{"tf":1.0},"2":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"n":{"d":{"df":2,"docs":{"19":{"tf":3.3166247903554},"21":{"tf":1.0}}},"df":3,"docs":{"23":{"tf":4.123105625617661},"24":{"tf":1.0},"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"28":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":2.449489742783178},"17":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"y":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":1,"docs":{"19":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"f":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.7320508075688772}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}},"h":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"q":{"df":3,"docs":{"29":{"tf":2.23606797749979},"31":{"tf":2.23606797749979},"32":{"tf":1.0}},"l":{"df":3,"docs":{"19":{"tf":2.8284271247461903},"4":{"tf":1.0},"5":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.4142135623730951},"7":{"tf":1.4142135623730951}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"7":{"tf":1.4142135623730951},"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"x":{")":{"(":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":2.23606797749979}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.7320508075688772}}}}}}},"df":1,"docs":{"18":{"tf":2.449489742783178}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"19":{"tf":1.0},"25":{"tf":3.0},"26":{"tf":1.0},"30":{"tf":2.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"8":{"tf":1.7320508075688772}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"y":{"%":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}},"g":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":3,"docs":{"10":{"tf":1.4142135623730951},"24":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"i":{"df":1,"docs":{"10":{"tf":1.4142135623730951}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{":":{"/":{"/":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"8":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}}}},"l":{"1":{"df":1,"docs":{"31":{"tf":3.7416573867739413}}},"2":{"df":1,"docs":{"31":{"tf":3.1622776601683795}}},"3":{"df":1,"docs":{"31":{"tf":2.23606797749979}}},"a":{"df":0,"docs":{},"m":{"b":{"d":{"a":{"df":1,"docs":{"8":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":2.23606797749979}},"s":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":5,"docs":{"0":{"tf":2.0},"1":{"tf":1.0},"2":{"tf":1.0},"28":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":8,"docs":{"24":{"tf":2.8284271247461903},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":2.0},"4":{"tf":1.0},"6":{"tf":1.0},"8":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"27":{"tf":1.4142135623730951},"28":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"15":{"tf":1.0},"19":{"tf":1.4142135623730951},"23":{"tf":3.1622776601683795},"26":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.4142135623730951},"9":{"tf":1.7320508075688772}}}},"o":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"19":{"tf":2.0},"30":{"tf":1.7320508075688772}},"p":{"df":2,"docs":{"15":{"tf":1.0},"9":{"tf":2.0}}}}}},"df":0,"docs":{}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.7320508075688772}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}},"p":{"df":11,"docs":{"10":{"tf":1.7320508075688772},"12":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":2.0},"20":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"8":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}}}},"q":{"df":1,"docs":{"18":{"tf":2.0}},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":4,"docs":{"20":{"tf":2.6457513110645907},"21":{"tf":1.0},"23":{"tf":1.0},"25":{"tf":1.0}},"e":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"r":{"df":1,"docs":{"18":{"tf":2.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"25":{"tf":4.123105625617661},"26":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"17":{"tf":1.7320508075688772}},"q":{"df":8,"docs":{"17":{"tf":3.872983346207417},"18":{"tf":2.449489742783178},"20":{"tf":2.449489742783178},"21":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":2.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":1.7320508075688772}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":2.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"28":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"9":{"tf":2.449489742783178}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"o":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":2,"docs":{"17":{"tf":1.0},"28":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"28":{"tf":1.0}}}}}},"u":{"df":1,"docs":{"18":{"tf":1.7320508075688772}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"28":{"tf":1.0}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"10":{"tf":2.23606797749979},"15":{"tf":1.0}}}},"r":{"df":1,"docs":{"17":{"tf":4.0}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"17":{"tf":2.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"33":{"tf":1.7320508075688772}}}},"w":{"df":1,"docs":{"18":{"tf":2.6457513110645907}},"e":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"x":{"(":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":3,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":2.0},"5":{"tf":3.3166247903554}}},"y":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"z":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}}}},"title":{"root":{"0":{"1":{"df":1,"docs":{"3":{"tf":1.0}}},"2":{"df":1,"docs":{"7":{"tf":1.0}}},"3":{"df":2,"docs":{"1":{"tf":1.0},"16":{"tf":1.0}}},"4":{"df":1,"docs":{"22":{"tf":1.0}}},"5":{"df":1,"docs":{"27":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.0}}},"7":{"df":1,"docs":{"34":{"tf":1.0}}},"8":{"df":1,"docs":{"35":{"tf":1.0}}},"9":{"df":1,"docs":{"36":{"tf":1.0}}},"df":0,"docs":{}},"1":{"0":{"df":1,"docs":{"37":{"tf":1.0}}},"1":{"df":1,"docs":{"38":{"tf":1.0}}},"2":{"df":2,"docs":{"1":{"tf":1.0},"39":{"tf":1.0}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"19":{"tf":1.0}}},"df":1,"docs":{"23":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.0},"7":{"tf":1.0}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":1,"docs":{"7":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"8":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.0}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"24":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"27":{"tf":1.0}}}}},"df":0,"docs":{}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"q":{"df":1,"docs":{"17":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"df":0,"docs":{},"s":{"df":1,"docs":{"33":{"tf":1.0}}}}}}},"lang":"English","pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5"},"results_options":{"limit_results":30,"teaser_word_count":30},"search_options":{"bool":"OR","expand":true,"fields":{"body":{"boost":1},"breadcrumbs":{"boost":1},"title":{"boost":2}}}}); \ No newline at end of file diff --git a/searchindex.json b/searchindex.json index d49d148..d27935b 100644 --- a/searchindex.json +++ b/searchindex.json @@ -1 +1 @@ -{"doc_urls":["Index.html#들어가며","ch03/ch03.html#03-12개의-레슨으로-배우는-필수-리스프","ch03/ch03.html#짚고-넘어가기","ch03/lesson_01.html#레슨-01-필수---신택스essential-syntax","ch03/lesson_01.html#리스트는-괄호로-감싸져있다","ch03/lesson_01.html#아톰atom은-공백이나-괄호로-분리된-것입니다","ch03/lesson_01.html#짚고-넘어가기","ch03/lesson_02.html#레슨-02-필수---평가essential-evaluation","ch03/lesson_02.html#폼form은-평가될-수-있습니다","ch03/lesson_02.html#함수는-인자를-받을-수-있습니다","ch03/lesson_02.html#함수는-다수의-값을-반환-할-수-있다","ch03/lesson_02.html#함수에서-인자를-수정하지-않는다","ch03/lesson_02.html#인자는-보통은-함수가-적용-전에-평가된다","ch03/lesson_02.html#인자들은-좌측에서-우측으로-순서대로-평가된다","ch03/lesson_02.html#스페셜-폼과-메크로는-인자의-평가하는-방법을-바꿀-수-있다","ch03/lesson_02.html#짚고-넘어가기","ch03/lesson_03.html#레슨-03-스페셜-폼과-매크로에-대한-예제","ch03/lesson_03.html#setq","ch03/lesson_03.html#let","ch03/lesson_03.html#cond","ch03/lesson_03.html#quote","ch03/lesson_03.html#짚고-넘어가기","ch03/lesson_04.html#레슨-04-조립과-분해","ch03/lesson_04.html#cons","ch03/lesson_04.html#list","ch03/lesson_04.html#first-와--rest","ch03/lesson_04.html#짚고-넘어가기","ch03/lesson_05.html#레슨-05-네이밍과-아이덴티티naming-and-identity","ch03/lesson_05.html#심볼은-단지-이름","ch03/lesson_05.html#심볼은-항상-유니크하다","ch03/lesson_05.html#심볼로-값에-이름-붙일-수-있다","ch03/lesson_05.html#값은-하나-이상의-이름을-가질-수-있다","ch03/lesson_05.html#짚고-넘어가기","ch03/lesson_06.html#레슨-06-바인딩-vs-할당","ch03/lesson_07.html#레슨-07-필수---함수-정의","ch03/lesson_08.html#레슨-08-필수---매크로-정의","ch03/lesson_09.html#레슨-09-필수---다중-값","ch03/lesson_10.html#레슨-10-프리뷰---다른-데이터-타입","ch03/lesson_11.html#레슨-11-필수---입력과-출력","ch03/lesson_12.html#레슨-12-필수---리더-매크로"],"index":{"documentStore":{"docInfo":{"0":{"body":45,"breadcrumbs":0,"title":0},"1":{"body":6,"breadcrumbs":4,"title":2},"10":{"body":22,"breadcrumbs":3,"title":0},"11":{"body":0,"breadcrumbs":3,"title":0},"12":{"body":2,"breadcrumbs":3,"title":0},"13":{"body":0,"breadcrumbs":3,"title":0},"14":{"body":5,"breadcrumbs":3,"title":0},"15":{"body":8,"breadcrumbs":3,"title":0},"16":{"body":1,"breadcrumbs":4,"title":1},"17":{"body":84,"breadcrumbs":4,"title":1},"18":{"body":100,"breadcrumbs":3,"title":0},"19":{"body":59,"breadcrumbs":4,"title":1},"2":{"body":5,"breadcrumbs":2,"title":0},"20":{"body":32,"breadcrumbs":4,"title":1},"21":{"body":3,"breadcrumbs":3,"title":0},"22":{"body":0,"breadcrumbs":4,"title":1},"23":{"body":51,"breadcrumbs":4,"title":1},"24":{"body":29,"breadcrumbs":4,"title":1},"25":{"body":64,"breadcrumbs":5,"title":2},"26":{"body":8,"breadcrumbs":3,"title":0},"27":{"body":0,"breadcrumbs":6,"title":3},"28":{"body":32,"breadcrumbs":3,"title":0},"29":{"body":24,"breadcrumbs":3,"title":0},"3":{"body":0,"breadcrumbs":6,"title":3},"30":{"body":23,"breadcrumbs":3,"title":0},"31":{"body":63,"breadcrumbs":3,"title":0},"32":{"body":1,"breadcrumbs":3,"title":0},"33":{"body":0,"breadcrumbs":6,"title":2},"34":{"body":0,"breadcrumbs":4,"title":1},"35":{"body":0,"breadcrumbs":4,"title":1},"36":{"body":0,"breadcrumbs":4,"title":1},"37":{"body":0,"breadcrumbs":4,"title":1},"38":{"body":0,"breadcrumbs":4,"title":1},"39":{"body":0,"breadcrumbs":4,"title":1},"4":{"body":51,"breadcrumbs":3,"title":0},"5":{"body":48,"breadcrumbs":4,"title":1},"6":{"body":2,"breadcrumbs":3,"title":0},"7":{"body":0,"breadcrumbs":6,"title":3},"8":{"body":29,"breadcrumbs":4,"title":1},"9":{"body":52,"breadcrumbs":3,"title":0}},"docs":{"0":{"body":"David Lamkins의 Successful Lisp의 한국어 번역본입니다. 다비드 라킨스, 번역을 허락해주셔서 감사합니다. 그의 웹사이트는 http://lamkins.net , github는 https://github.com/TieDyedDevil 입니다. 그의 책은 아마존 닷컴 이곳 에서 원서로 구입할 수 있으며 온라인 버전은 이곳 에서 볼 수 있습니다. Successful Lisp의 모든 저작권은 David Lamkins에게 있습니다. This is David Lamkins's Successful Lisp's Korean translation. David Lamkins, Thank you for allowing me to translate your book. His personnal website is http://lamkins.net , github is https://github.com/TieDyedDevil . You can buy His original book on Amazon.com here and you can check his online version of successfull lisp here . David Lamkins owns All of Successful Lisp's copyright.","breadcrumbs":"들어가며 » 들어가며","id":"0","title":"들어가며"},"1":{"body":"이번 장은 여러분에게 리스프를 시작하기에 앞서 알아야 할 모든것을 가르칠 것입니다. 언어의 코어 기능들을 모두 다룰 것입니다. 여러분이 이 코어를 리스프 자체라 생각하고, 그렇지 않은 것은 하나의 거대한 표준 라이브러리라 생각하셨으면 합니다. 책을 읽은 후 이를 배경으로, Common Lisp : The Language, 2nd Edition과 같은 메뉴얼을 참조하면, 더욱 편하게 리스프의 남은 부분들을 배울 수 있을 것입니다. 여러분은 이번 장을 한번에 쭉 읽어야 합니다. 이따금 다음 단락이나 다음 장에대해 언급하겠지만, 이번장을 이해하기 위해서 반드시 그러한 참고들을 따를 필요는 없습니다. 이번 장을 끝낼 무렵, 여러분은 이미 리스프 시스템의 키보드 앞에 앉아 4장을 진행하고 있을 것 입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 03. 12개의 레슨으로 배우는 필수 리스프","id":"1","title":"03. 12개의 레슨으로 배우는 필수 리스프"},"10":{"body":"우리는 종종 다수의 값을 반환하는 함수를 갖길 원합니다. 예를들어, 데이터베이스 전체를 살펴보는 함수는 요구하는 값과 완료상태코드를 동시에 반환해야 합니다. 이를 행할 방법으로는 해당 결과값을 저장할 위치 자체를 함수에 전달하는 것입니다; 가능은 하지만, 리스프 프로그램에서는 매우 드믄 일입니다. 또 다른 접근법은 결과와 상태코드를 하나로 묶어 하나의 반환 값으로 만드는 것입니다. 리스프는 구조체[p 72]를 포함하여 여러분에게 이를 수행할 다양한 방식을 제공합니다. 다만, 이와같이 하나로 묶는 방식은 잘못하면 가비지(29장 [p 238] 참조)가 생성되어 프로그램 작동 속도가 느려지게 만들 수 있기에 숙련된 리스프 프로그래머는 이와 같은 작업을 피합니다. 함수에서 다수의 값을 반환하는 올바른 법은 values 폼을 이용하는 것입니다. 잠시 후에 함수 컨텍스트안에서의 VALUES의 사용법을 [p 63]에서 살펴보도록 하겠습니다. 지금은, 리스프가 values 폼을 평가할때 무슨 일이 벌어지는지 살펴봅시다: (values 1 2 3 :hi \"Hello\")\n;;=> 1\n;;=> 2\n;;=> 3\n;;=> :HI\n;;=> \"Hello\" 리스프가 values 폼으로 각 인자에 대한 값을 반환하는 것을 확인할 수 있습니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수는 다수의 값을 반환 할 수 있다.","id":"10","title":"함수는 다수의 값을 반환 할 수 있다."},"11":{"body":"앞서, 결과값을 저장할 위치 자체를 인자로 함수에 넘길 수 있으며, 함수가 그 위치의 값을 바꿀 수도 있다고 말한 바가 있습니다. 다른 언어들은 이를 일반적인 레파토리로 말할지라도, 리스프 프로그램에서 매우 드문 일입니다. 저장할 위치에 키워드가 아닌 심볼이나 구조체 같은 것을 넣을 수 는 있습니다. 심볼을 넣을 경우, 함수는 심볼에 새로운 값을 넣는 코드를 수행해야만 합니다. 구조체를 넣을 경우 구조체의 각 값을 올바르게 변경하는 코드를 수행해야만 합니다. 이러한 작업 자체도 복잡하고 이렇게 작성된 프로그램을 이해하는 것도 어렵습니다. 따라서 리스프 프로그래머들은 일반적으로 인자를 수정하지 않고, 인자는 인자, 결과는 결과로 구분된 함수를 작성합니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수에서 인자를 수정하지 않는다.","id":"11","title":"함수에서 인자를 수정하지 않는다."},"12":{"body":"리스프가 함수를 평가하면, 앞서 봤던것처럼[p 42], 항상 모든 인자를 우선적으로 평가합니다. 불행히도, 모든 규칙에는 예외가 있으며, (곧 보게될 것처럼)이 규칙도 예외는 아닙니다... 문제는 리스프가 함수의 인자를 평가하지 않을 수 있다라는 점이 아니라, 리스트 폼은 함수 호출이 아닐 수 도 있다라는 점입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 인자는 (보통은) 함수가 적용 전에 평가된다.","id":"12","title":"인자는 (보통은) 함수가 적용 전에 평가된다."},"13":{"body":"리스트 폼이 함수를 호출하면, 이의 인자는 항상 좌측에서 우측으로 순서대로 평가됩니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 인자들은 좌측에서 우측으로 순서대로 평가된다","id":"13","title":"인자들은 좌측에서 우측으로 순서대로 평가된다"},"14":{"body":"리스트 폼이 함수 호출이 아닐 수 도 있다 라고 했는데, 그럼 무엇이 될 수 있을까요? 2가지 경우가 있지만, 결과는 같습니다: 몇몇 인자는 평가되며 몇몇은 평가가 안됩니다. 폼이나 폼이 아니냐에 달려있습니다. 이 예외에 대해서만 알면 됩니다. 다행히도, 대부분의 리스프 시스템은 한두번의 키 입력으로 이에 대한 온라인 문서를 여러분에게 보여줄 것입니다. 모든 인자가 평가되지 않는 폼은 두가지가 있습니다: 스페셜 폼과 매크로. 리스프는 몇몇 스페셜 폼을 미리 정의해 두었습니다. 언어 자체의 주요 기능이기에 여러분만의 스페셜 폼을 추가할 수는 없습니다. 또 리스프는 몇몇 매크로를 미리 정의해두었습니다. 단, 매크로는 저희가 작성할 수 있습니다. 리스프의 매크로를 이용하면 언어의 강력한 힘을 이용하여 우리만의 기능을 추가 할 수 있습니다. 이 장의 뒷 부분에서 간략하게 간단한 매크로를 작성해 볼 것입니다 [p 61]. 20장에서는[p 188] 복잡한 매크로에 대해 다뤄볼 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 스페셜 폼과 메크로는 인자의 평가하는 방법을 바꿀 수 있다.","id":"14","title":"스페셜 폼과 메크로는 인자의 평가하는 방법을 바꿀 수 있다."},"15":{"body":"폼(form) 키워드(:) 전위 표기법(prefix notation) atom numberp NIL T values","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 짚고 넘어가기","id":"15","title":"짚고 넘어가기"},"16":{"body":"원문 이제 스페셜 폼과 매크로에 대해 살펴보도록 하겠습니다. 다음 4개의 레슨들을 거쳐, 가장 기본적인 리스프 데이터 형식, 리스트를 이용하여 간단한 함수를 작성케 해주는 레파토리를 구축할 것입니다. 나머지 장에서는 더욱 복잡한 프로그램 구조와 데이터형식을 다룰 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » 레슨 03. 스페셜 폼과 매크로에 대한 예제","id":"16","title":"레슨 03. 스페셜 폼과 매크로에 대한 예제"},"17":{"body":"이전에, 여러분께 리스프가 심볼 폼을 평가하여 변수의 값을 받온다고 말했습니다. setq는 이 변수의 값을 설정하는 방법을 제공합니다: (setq my-name \"David\")\n;;=> \"David\" my-name\n;;=> \"David\" (setq a-variable 57)\n;;=> 57 a-variable\n;;=> 57 (setq a-variable :a-keyword)\n;;=> :A-KEYWORD setq의 첫번째 인자는 심볼입니다. 이는 평가되지 않습니다. 두번째 인자는 변수의 값으로 할당됩니다. setq는 마지막 인자의 값을 반환합니다. setq는 심볼 그 자체를 값으로 할당하고자 하기에 첫번째 인자를 평가하지 않습니다. 만일 setq가 첫번째 인자를 평가한다면, (할당될 심볼이 있어야 하기에)해당 인자의 값은 심볼이여야 합니다. set 폼이 그러한 일을 합니다: (setq var-1 'var-2)\n;;=> VAR-2 var-1\n;;=> VAR-2 var-2\n;;>| Error: Unbound variable :TODO(pyoung) (set var-1 99)\n;;=> 99 var-1\n;;=> VAR-2 VAR-2\n;;=> 99 첫번째 폼에서 '을 발견하셨나요? 이것은 다음 폼 var-2 가 평가되는 것을 방지합니다. 이번 레슨 후반에, quote[p 50]를 살펴볼때, 더욱 자세히 설명하도록 하겠습니다. 이번 예제에서는, 우선 var-1의 값을 심볼 var-2로 설정하였습니다. 그 후 var-2의 값을 확인하였고, 아무런 값도 가지지 않았다는 것을 확인하였습니다. 다음으로, (setq가 아닌) set을 이용하여 var-1의 값인 심볼 var-2에 값 99를 할당하였습니다. 사실 setq 폼은 심볼과 값을 번갈아 사용하여 짝수개의 인자를 취할 수 있습니다: (setq month \"June\" day 8 year 1954)\n;;=> 1954 month\n;;=> \"June\" day\n;;=> 8 year\n;;=> 1954 setq는 좌측에서 우측으로 할당을 수행하고, 맨 우측에 있는 값을 반환합니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » SETQ","id":"17","title":"SETQ"},"18":{"body":"let 폼은 이전에 봐왔던 것보다 좀 더 복잡해 보입니다. let폼은 중첩된 리스트를 이용하지만, 스페셜 폼은 아니기에 특정 요소만 평가됩니다: (let ((a 3) (b 4) (c 5)) (* (+ a b) c))\n;;=> 35 a\n;;>| Error: Unbound variable b\n;;>| Error: Unbound variable c\n;;>| Error: Unbound variable 위에 있는 let 폼은 심볼 a, b, c의 값을 정의 후, 이를 이용하여 산술 계산을 하였습니다. 또한 이 계산의 결과가 바로 let 폼의 결과입니다. let에서 정의된 변수가 폼을 평가한 후에는 어떠한 값도 지니지 않는다는 점을 주목하시기 바랍니다. 대게, let은 다음과 같이 생겼습니다: (let (bindings) forms) bindings에는 임의의 수의 두개의 원소를 지닌 리스트가 있으며 (각 리스트는 심볼과 값을 지닙니다), forms에는 임의의 수의 리스프 폼이 있습니다. forms의 평가를 위해, bindings에 의해 수립된 값을 이용합니다. let은 마지막 폼에 의해 반환된 값(들)을 반환합니다. 들여쓰기는 let의 동작에 영향을 미치진 않지만, 적절한 들여쓰기는 가독성을 향상시킵니다. 다음 두 동일한 폼을 살펴보시기 바랍니다: (let ((p 52.8) (q 35.9) (r (f 12.07))) (g 18.3) (f p) (f q) (g r t)) (let ((p 52.8) (q 35.9) (r (f 12.07))) (g 18.3) (f p) (f q) (g r t)) 첫번째 경우, 들여쓰기로 어떤게 바인딩이며 어떤게 폼인지 명확하게 나타납니다. 독자가 let 폼의 두 부분에서 수행된 서로 다른 규칙에 대해 자세히 알지 못할지라도, 들여쓰기는 차이를 나타냅니다. 두번째경우, 여러분은 어디에서 바인딩이 끝나며 폼이 시작되는지 알고자 한다면, 괄호를 세어야만 할 것입니다. 더욱 안좋은 것은, 들여쓰기의 부제는 let 폼의 두 부분에 의해 수행되는 역활의 차이점에 대해 시각적 단서(visual cues)를 없애버립니다. setq를 이용하여 변수를 정의하고 let 폼에서 동일한 변수 이름을 사용한다면, let을 평가하는 동안 let에 의해 정의된 값이 (setq에 의해 정의된)다른 값을 대체할 것입니다: (setq a 89)\n;;=> 89 a\n;;=> 89 (let ((a 3)) (+ a 2))\n;;=> 5 a\n;;=> 89 좌에서 우로 순서대로 값의 할당이 이루어지는 setq와 달리, let은 모두 동일한 시간에 변수를 바인드합니다. (setq w 77)\n;;=> 77 (let ((w 8) (x w)) (+ w x))\n;;=> 85 let은 w를 8로 x는 w로 바인드 하였습니다. 동일한 시각에 이러한 바인딩이 발생하였으므로 w는 여전히 값 77을 지니게 됩니다. 리스프는 순서대로 바인딩을 수행하는 let*이라는 let의 변종을 지녔습니다. (setq u 37)\n;;=> 37 (let* ((v 4) (u v)) (+ u v))\n;;=> 8","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » LET","id":"18","title":"LET"},"19":{"body":"cond 매크로는 조건적으로 리스프 폼을 평가하도록 합니다. let처럼, cond는 폼의 다양한 부분을 구분짓기 위해 괄호를 이용합니다. 이 예제를 살펴보시기 바랍니다: (let ((a 1) (b 2) (c 1) (d 1)) (cond ((eql a b) 1) ((eql a c) \"First form\" 2) ((eql a d) 3)))\n;;=> 2 위에 정의된 cond 폼에서 3개의 절을 정의하였습니다. 각 절은 테스트 폼으로 시작하는 리스트이며 원하는 만큼의 바디(body) 폼이 뒷따라 나옵니다. 바디 폼은 테스트가 성공일시 실행되는 코드 입니다. 순차적으로 절이 선택됩니다 - 하나의 테스트가 성공하면 그에 대응하는 바디 폼이 평가되고 그 바디 폼의 마지막 값이 cond 폼의 값이 됩니다. cond는 여러 절을 다룰 수 있기에, 스페셜 폼 if에 비해 범용적입니다. 이제 예제에서 어떤일이 수행되는지 살펴보도록 하겠습니다. 두 인자가 동일하거나, 동일한 숫자면 eql 은 T를 반환합니다(17장[p 174]에서 다루게될 미묘한 다름이 있긴 합니다). 3개의 테스트중 두개만 실행되었습니다. 첫번째 (eql a b)는 NIL을 반환합니다. 그러므로, 1을 포함하는 절은 넘어갑니다. 두번째 절은 (eql a c)를 테스트하며 이는 참입니다. 이 테스트가 NIL이 아닌 값을 반환하기에, 절의 나머지 부분이 평가가 되어, 마지막 폼의 값이 cond의 값으로 반환된 다음, 최종적으로 let의 반환값으로써 반환됩니다. 세번째 절은 이미 이전 절이 선택되었기에 평가되지 않습니다 - 절들은 순서대로 선택됩니다. 관습적으로 cond의 마지막 절의 테스트 폼으로 T를 사용합니다. 이는 다른 절들이 모두 테스트에 실패를 하면 마지막 절의 바디 폼이 평가된다는 것을 보증합니다. 기본 값을 반환하거나 기타 다른 적절한 작업을 수행하기 위해 이 마지막 절을 활용할 수 있습니다. 여기 예제가 있습니다: (let ((a 32)) (cond ((eql a 13) \"An unlucky number\") ((eql a 99) \"A lucky number\") (t \"Nothing special about this number\")))\n;;=> \"Nothing special about this number\"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » COND","id":"19","title":"COND"},"2":{"body":"Common Lisp : The Language, 2nd Edition","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 짚고 넘어가기","id":"2","title":"짚고 넘어가기"},"20":{"body":"가끔씩 리스프의 평가 규칙을 적용시키지 않고 싶을 때가 있을것입니다.. 이러한 예 중 하나를 꼽자면, 함수 호출의 인자로써 심볼의 값보다 심볼 그 자체를 쓰고 싶을 때입니다: (setq a 97)\n;;=> 97 a\n;;=> 97 (setq b 23)\n;;=> 23 (setq a b)\n;;=> 23 a\n;;=> 23 (setq a (quote b))\n;;=> B a\n;;=> B 차이점은 (setq a b)에서 사용된 b의 값 과 (setq a (quote b))에서의 심볼 b입니다. quote 폼은 매우 자주 사용되며, 리스프는 약칭 표기를 제공합니다: (QUOTE form) == 'form 리스프는 리더 매크로를 통해 '와 quote를 동일하게 처리합니다. 레슨 12 [p 82]에서 어떻게 여러분만의 리더 매크로를 정의할 수 있는지 간략하게 살펴볼 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » QUOTE","id":"20","title":"QUOTE"},"21":{"body":"setq let cond ', quote","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » 짚고 넘어가기","id":"21","title":"짚고 넘어가기"},"22":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » 레슨 04. 조립과 분해","id":"22","title":"레슨 04. 조립과 분해"},"23":{"body":"cons는 리스트의 가장 기본적인 구성 요소입니다. 이는 함수므로 이의 인자들을 평가합니다. 리스트를 만들때에는 cons의 두번째 인자로 리스트 혹은 NIL이 들어올것입니다. (cons 1 nil)\n;;=> (1) (cons 2 (cons 1 nil))\n;;=> (2 1) (cons 3 (cons 2 (cons 1 nil)))\n;;=> (3 2 1) cons는 새로운 항목을 리스트의 시작 부분에 추가합니다. 비어있는 리스트 ( ) 는 NIL과 동일하며, ( ) == NIL 따라서 이렇게 작성할 수 있습니다: (cons 1 ())\n;;=> (1) (cons 2 (cons 1 ()))\n;;=> (2 1) (cons 3 (cons 2 (cons 1 ())))\n;;=> (3 2 1) 혼란스럽게 느껴진다면, 맞습니다, NIL에는 뭔가 특별한 능력이 있습니다. NIL은 키워드는 아니지만 자기 자신을 상수 값으로 가지는 리스프의 두개의 심볼 중 하나입니다. 또 다른 심볼은 T입니다. ( ) == NIL이란 것과 NIL이 스스로 평가된다는 것을 종합해보면, 이는 (quote ())를 ()로 쓸 수 있다는 것을 의미합니다. 그렇지 않았다면, 리스프는 빈 리스트를 처리하기 위해 평가 규칙에 예외를 추가해야 했을 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » CONS","id":"23","title":"CONS"},"24":{"body":"아마 여러분이 눈치챗다면, 중첩된 cons 폼으로도 리스트가 만들어질 수 있다는 것은 조금 지루할 수 도 있습니다. list 폼은 좀더 명료한 방법으로 동일한 일을 수행합니다: (list 1 2 3)\n;;=> (1 2 3) list는 여러 인자를 취할 수 있습니다. list는 함수이기에, 이는 인자를 평가합니다: (list 1 2 :hello \"there\" 3)\n;;=> (1 2 :HELLO \"there\" 3) (let ((a :this) (b :and) (c :that)) (list a 1 b c 2))\n;;=> (:THIS 1 :AND :THAT 2)","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » LIST","id":"24","title":"LIST"},"25":{"body":"리스트가 (첫번째와 나머지) 두 부분으로 만들어졌다고 가정한다면, 여러분은 first와 rest 두 연산자를 이용하여 리스트의 개별 원소들을 얻을 수 있습니다: (setq my-list (quote (1 2 3 4 5)))\n;;=> (1 2 3 4 5) (first my-list)\n;;=> 1 (rest my-list)\n;;=> (2 3 4 5) (first (rest my-list))\n;;=> 2 (rest (rest my-list))\n;;=> (3 4 5) (first (rest (rest my-list)))\n;;=> 3 (rest (rest (rest my-list)))\n;;=> (4 5) (first (rest (rest (rest my-list))))\n;;=> 4 first와 rest 함수를 이리저리 엮는 것은 분명 지루한 작업일 것입니다. 또, 이러한 접근 법은 프로그램에서 특정 요소만을 선택하고자 할때나 혹은 리스트의 길이가 무한일때 잘 먹히지 않을 것입니다. 4장[p 84] 에서 재귀 함수를 정의할때 이러한 문제를 어떻게 해결하는지 살펴볼 것입니다. 나중에 13장에서 [p 150], 리스프가 제공하는 리스트 혹은 시퀀스 속 요소를 선택할 수 있는 함수들을 살펴 볼 것입니다 first와 rest는 꽤 최근 동안 활약해온 car와 cdr 함수의 이름을 바꾸어 리스프에 추가된 것입니다. 초기 리스프 구현체 중 하나에서 car와 cdr의 이름이 유례됬고, 이 이름에 기반한 구현체가 이미 오래전에 바뀌었음에도 불구하고 수십년간 고수되었습니다","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » FIRST 와 REST","id":"25","title":"FIRST 와 REST"},"26":{"body":"cons list first rest car cdr nil , ( ) T","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » 짚고 넘어가기","id":"26","title":"짚고 넘어가기"},"27":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 레슨 05. 네이밍과 아이덴티티(Naming and Identity)","id":"27","title":"레슨 05. 네이밍과 아이덴티티(Naming and Identity)"},"28":{"body":"심볼은 단지 이름입니다. 심볼은 심볼 그 자체 입니다. 이는 리스프에서 특정 종류의 프로그램을 작성하는 것을 쉽게 만들어 줍니다. 예를들어, 프로그램으로 가족 관계를 나타내고자 한다면, 이와 같은 관계를 나타내는 데이터베이스를 만들 수 있습니다: (father John Barry)\n(son John Harold)\n(father John Susan)\n(mother Edith Barry)\n(mother Edith Susan) ... 각각의 관계를 리스트로 표현했습니다. 예로 (father John Barry)는 John은 Barry의 아버지라는 것을 의미합니다. 데이터베이스 속 리스트의 모든 요소는 심볼입니다. 예를들어 Harold는 Barry의 할아버지라는 것을 판별하기 위해 리스프 프로그램은 이 데이터베이스안에 있는 심볼들을 비교할 수 있습니다. (심볼이 없는)다른 언어 언어에서 이와 같은 프로그램을 작성하고자 한다면, 가족 구성원의 이름과 관계를 어떻게 표현해야할지 결정해야만 해야하며, 거기에 필요한 모든 동작들을 수행하는 코드를 작성해야만 할 것입니다(읽고, 출력하고, 비교하고, 할당하고, 기타등등). :TODO(pyoung) This is all built into Lisp, because symbols are a data type distinct from the objects they might be used to name.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼은 단지 이름","id":"28","title":"심볼은 단지 이름"},"29":{"body":"프로그램에서 이름이 같은 심볼은 항상 동일합니다. eq 테스트로 심볼을 비교할 수 있습니다: (eq 'a 'a)\n;;=> T (eq 'david 'a)\n;;=> NIL (eq 'David 'DAVID)\n;;=> T (setq zzz 'sleeper)\n;;=> SLEEPER (eq zzz 'sleeper)\n;;=> T 심볼 이름으로 대문자나 소문자를 사용하는 것은 문제가 되지 않습니다. 내부적으로, 리스프는 심볼 이름에 있는 모든 알파벳 문자들을 보통은 대문자로 바꾸며, 리스프 리더 속에 있는 플레그를 설정하여 이 기본 설정을 제어할 수 있습니다. 레슨 10 [p 65](또한 31장 [p 247]참조)에서 패키지에 대해 배운다면, 스펠은 같지만 동일하지는 않는 심볼 이름을 만들 수 있습니다. 지금 알아야 할것은 : 로 기술된 심볼은 특별하게 취급한다 라는 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼은 항상 유니크하다.","id":"29","title":"심볼은 항상 유니크하다."},"3":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 레슨 01. 필수 - 신택스(Essential Syntax)","id":"3","title":"레슨 01. 필수 - 신택스(Essential Syntax)"},"30":{"body":"심볼의 자기 자신을 표현하는 능력 역시 유용하지만, 더욱 일반적으로 사용되는 곳은 값의 이름을 붙일 때입니다. 이는 다른 프로그래밍 언어에서 변수와 함수 이름의 역활을 맡습니다. 리스프 심볼은 값의 이름이나, 함수의 이름을 지을때 사용됩니다. 리스프에서 특이한 점 중 하나는 심볼은 함수랑 변수의 값을 동시에 지닐 수 있다 라는 점 입니다: (setq first 'number-one)\n;;=> NUMBER-ONE (first (list 3 2 1))\n;;=> 3 first\n;;=> NUMBER-ONE 첫번째와 마지막 경우에서의 first는 변수 이며 , 두번째인 경우는 리스프에 의해 미리 정의된 함수 라는 점을 주의깊게 보시길 바랍니다. 리스프는 심볼이 보이는 곳에 기반하여 이 값이 무엇인지 결정합니다. 평가 규칙에 따라 값을 요청받으면, 리스프는 심볼의 변수 값을 찾습니다. 함수를 요청받으면, 리스프는 심볼의 함수 값을 찾습니다. 심볼은 변수나 함수의 값 외에 다른 값을 가질 수 있습니다. 심볼은 문서, 프로퍼티 리스트(property list) 혹은 출력에 대한 이름 값도 가질 수 있습니다. 심볼의 문서는 심볼의 설명을 위한 텍스트입니다. documentation 폼을 이용하거나 심볼의 값을 정의하는 몇몇 폼에서 문서를 만들 수 있습니다. 심볼은 다양한 의미를 가질 수 있으므로 함수 및 변수와 같이 여러 가지 의미 각각에 대한 문서를 만들 수 있습니다. 프로퍼티 리스트는 엔트리(entry)당 하나의 키를 지닌 자그마한 데이터 베이스와 같습니다. 레슨 10 [p 65]에서 이러한 심볼의 사용법을 살펴볼 것입니다. 출력 이름은 리스프에서 심볼을 출력하기 위해 사용하는 것입니다. 일반적으로 이 이름을 변경하지 않는게 좋습니다; 변경한다면, 나중에 리스프가 심볼을 읽고 다른 이름으로 출력하기에 혹여 다시 리스프가 그 이름을 읽을때 원래 심볼값과 다른 의미를 지녀 혼란을 야기할 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼로 값에 이름 붙일 수 있다.","id":"30","title":"심볼로 값에 이름 붙일 수 있다."},"31":{"body":"값은 하나 이상의 이름을 가질 수 있습니다. 즉, 하나 이상의 심볼이 값을 공유할 수 있다는 것입니다. 다른 언어에서 이러한 방식으로 동작하는 것으로는 포인터가 있습니다. 리스프는 프로그래머에게 포인터를 노출하지 않지만, 공유 오브젝트는 있습니다. eq 테스트로 오브젝트가 서로 같은지 확인할 수 있습니다. 다음에 나오는 것을 살펴보시기 바랍니다: (setq L1 (list 'a 'b 'c))\n;;=> (A B C) (setq L2 L1)\n;;=> (A B C) (eq L1 L2)\n;;=> T (setq L3 (list 'a 'b 'c))\n;;=> (A B C) (eq L3 L1)\n;;=> NIL 여기서, 동일한 값을 L1과 L2라 이름지엇기에, L1과 L2는 eq합니다. 다시 말하자면 (list 'a 'b 'c) 폼에 의해 생성된 값은 L1과 L2 두개의 이름을 갖습니다. (setq L2 L1) 폼은 \"L2의 값이 L1의 값이 되도록 해라\" 라고 지시합니다. 값의 복사를 말 하는게 아니라, 값 그 자체를 지칭합니다. 따라서 L1과 L2는 동일한 값 (처음 L1에 할당된 리스트 (A B C))을 공유합니다. 또한 L3도 리스트 (A B C)를 값으로 갖지만, 이는 L1과 L2가 공유하는 것과는 다른 새로운 리스트 입니다. 비록 L3의 값이 L1과 L2의 값과 동일한 것처럼 보이지만, 다른 list 폼에 의해 생성되었기에, 이는 다른 리스트입니다. 따라서, 서로 심볼 A, B, C로 구성된 리스트이지만, 다른 리스트이기에, (eq L3 L1)는 NIL이 됩니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 값은 하나 이상의 이름을 가질 수 있다","id":"31","title":"값은 하나 이상의 이름을 가질 수 있다"},"32":{"body":"eq","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 짚고 넘어가기","id":"32","title":"짚고 넘어가기"},"33":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 06. 바인딩 vs 할당 » 레슨 06. 바인딩 vs 할당","id":"33","title":"레슨 06. 바인딩 vs 할당"},"34":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 07. 필수 - 함수 정의 » 레슨 07. 필수 - 함수 정의","id":"34","title":"레슨 07. 필수 - 함수 정의"},"35":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 08. 필수 - 매크로 정의 » 레슨 08. 필수 - 매크로 정의","id":"35","title":"레슨 08. 필수 - 매크로 정의"},"36":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 09. 필수 - 다중 값 » 레슨 09. 필수 - 다중 값","id":"36","title":"레슨 09. 필수 - 다중 값"},"37":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 10. 프리뷰 - 다른 데이터 타입 » 레슨 10. 프리뷰 - 다른 데이터 타입","id":"37","title":"레슨 10. 프리뷰 - 다른 데이터 타입"},"38":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 11. 필수 - 입력과 출력 » 레슨 11. 필수 - 입력과 출력","id":"38","title":"레슨 11. 필수 - 입력과 출력"},"39":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 12. 필수 - 리더 매크로 » 레슨 12. 필수 - 리더 매크로","id":"39","title":"레슨 12. 필수 - 리더 매크로"},"4":{"body":"리스프에 대해 우선적으로 알아할 것입니다: 괄호로 둘러싸인 모든것은 리스트(list)이다. 여기 예가 있습니다: (1 2 3 4 5) (a b c) (cat 77 dog 89) 앞서 말씀드린대로, 괄호로 둘러싸인 것은 리스트입니다. 이와 같은 말을 들으면, 아마 다음과 같은 의문이 생길 것입니다: 괄호로 아무것도 없는것을 둘러싼다면? 괄호로 다른 리스트를 둘러싼다면? 두 경우 모두 대답은 같습니다. 여전히 리스트입니다. 따라서 다음 나오는 것들 또한 리스트입니다: () (()) ((())) ((a b c)) ((1 2) 3 4) (mouse (monitor 512 342) (keyboard US)) (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) 리스트가 아닌 유일한 경우는 다음 4개의 예제에 나온 것처럼, 좌/우측 괄호가 짝을 이루지 못하는 경우입니다: (a b c( ; (: 2개 // ): 0개 ((25 g) 34 ; (: 2개 // ): 1개 ((()) ; (: 3개 // ): 2개 (())) ; (: 2개 // ): 3개 크게 신경쓸 부분은 아닙니다: 리스프는 괄호가 일치하지 않으면 않다고 여러분에게 알려 줄 것입니다. 또, 리스프 프로그램을 작성하기 위해 사용하는 편집기 대부분은 자동적으로 일치하는 괄호를 찾는 방법을 제공해 줄 것입니다. 27장에서 편집기에 대해 살펴볼 수 있습니다 [p 227]. 리스프에서 리스트는 여러가지가 될 수 있습니다. 가장 일반적인 경우, 리스트는 프로그램이나 데이터가 될 수 있습니다. 그리고 리스트가 스스로 다른 리스트를 만들 수 있기에, 여러분은 복잡한 데이터의 조합과 여러 단계의 리스트 구조로 된 프로그램을 가질 수 있습니다. 이를 잘 이해하는 자에게는 리스프는 엄청난 유연성을 부여해 줄 것이며, 그렇지 않은 자에게는 많은 혼란을 줄 것입니다. 이번장을 계속해서 나아가면서 이러한 혼란을 없애도록 노력해 봅시다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 리스트는 괄호로 감싸져있다.","id":"4","title":"리스트는 괄호로 감싸져있다."},"5":{"body":"이제 여러분은 리스트를 구분할 수 있으며, 괄호 사이에 나타나지만 (리스트가 아닌)단어나 숫자인 것들에 대한 것들을 뭐라고 부르는지 알고 싶을 것입니다. 이러한 것들을 아톰(atom)이라 부릅니다. 그러므로, 다음 단어와 숫자들은 모두 아톰입니다: 1 25 342 mouse factorial x 리스프에서는 거의 모든 문자를 이용하여 아톰을 구성할 수 있습니다. 이제부터 문자, 숫자, 구두점 문자들이 있는데 이들 앞뒤에 공백(줄의 시작 또는 끝 포함) 또는 괄호가 있으면 이를 모두 아톰이라고 부르겠습니다. 다음 나오는 것들은 모두 아톰입니다: - * @comport funny%stuff 9^ case-2 만일 다른 프로그래밍에 대한 경험이 있다면, 한가지 주의해야 할 점은 보통 다른 언어에서 연산자로 예약된 문자들이 리스프에서 아톰으로써 쓰였다면 별다른 의미를 갖지 않는다는 것입니다. 예를들어, case-2는 수학적(arithmetic) 표현식 뺄샘이 들어간게 아니라 여기서는 그져 아톰 그 자체입니다. 공백이나 괄호로 무엇이 아톰인지 구분할 수 있으므로, 아톰과 괄호 혹은 괄호들 사이에 있는 공백을 없앨 수 있습니다. 그러므로, 다음 두 예제는 동일합니다: (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) (defun factorial(x)(if(eql x 0)1(* x(factorial(- x 1))))) 사실, 여러분은 절대로 두번째에 나타난것처럼 리스트를 작성해서는 안됩니다. 여러분은 가독성을 향상시키기 위해 리스트를 여러 라인으로 분리시키며 각 라인을 적절히 들여써야 합니다. 이 리스트는 사실 작은 프로그램이며, 다음과 같이 들여쓰면 리스퍼 프로그래머가 읽기 수월해 집니다: (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) 지금, 여러분은 이것이 무얼 의미하는지, 이러한 종류의 들여쓰기(indentation)가 무엇인지 대해 걱정할 필요가 없습니다. 이번장을 통해, 여러분은 들여쓰기가 들어간 많은 예제를 접하게 될 것입니다. 계속해서 보여드리는 예제와 함께, 가독성을 향상시키는 들여쓰는 방법에 대해 알려드릴 것입니다. 28장 [p 230]에서 적절한 들여쓰는 법을 포함하여, 리스프의 코딩 스타일에 대해 다룰 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 아톰(Atom)은 공백이나 괄호로 분리된 것입니다.","id":"5","title":"아톰(Atom)은 공백이나 괄호로 분리된 것입니다."},"6":{"body":"리스트(list) 아톰(atom)","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 짚고 넘어가기","id":"6","title":"짚고 넘어가기"},"7":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 레슨 02. 필수 - 평가(Essential Evaluation)","id":"7","title":"레슨 02. 필수 - 평가(Essential Evaluation)"},"8":{"body":"폼(form)은 아톰(atom) 혹은 리스트(list)가 될 수 있습니다. 중요한 것은 폼이 평가(evaluation)된다는 것입니다. 평가라는 것은 상당한 기술적 의미를 지니고 있으며, 이번 섹션에서 서서히 그 모습을 드러나게 될 것입니다. 폼이 아톰이라면 평가는 단순합니다. 리스프는 아톰을 마치 이름처럼 다루고, 값이 존재한다면 이름에 저장된 값을 얻습니다. 여러분은 아마도 왜 제가 아톰은 변수라고 직접적으로 말하지 않는지 의아할 것입니다. 명확하게 정의하지 않은 이유는 아톰은 변수이거나 상수의 값을 가질 수 있기 때문입니다. 그리고 아톰의 값은 경우에 따라 상수가 될 수 도 있습니다. 숫자는 아톰입니다(이 값은 상수입니다). 리스프는 숫자에 값을 저장 할 수 없습니다: 숫자는 자체적으로 평가됩니다. 정의가 완전히 내려지지 않은 새로운 용어를 소개합니다. 이제, 심볼을 값을 가질 수 있는 아톰이라고 여기기 바랍니다. 레슨 5[p 53]에서 심볼에 대해 더욱 자세히 살펴볼 것입니다. defconstant로 정의된 심볼은 상수 값을 지닙니다. 리스프는 변수처럼 아톰에 값을 저장한 다음, 값을 바꿀 수 없다라는 메모를 추가합니다. 패키지에 있는 키워드(keyword) 심볼은 스스로 평가됩니다. 패키지에 관한 것은 31장[p 247]에서 자세히 살펴볼 것입니다. 지금, 여러분이 알아야 할것은 (패키지 프리픽스라 불리는) : 문자로 시작하는 심볼은 키워드 심볼이라는 것입니다. 키워드 심볼은 그 자신을 값으로 갖습니다. 다양한 방식으로 심볼에서 값을 얻을 수 있습니다. 리스프는 실제로 심볼에 다양한 값을 저장합니다. 하나는 변수로서의 심볼의 값. 그리고 다른 하나는 함수로서 심볼입니다. 또 다른 것들은 해당 심볼에 대한 문서를 얻거나, 출력값으로 활용하거나, 연관리스트(associated list)처럼 속성값으로 쓰이기도 합니다. 이러한 것들에 대해 레슨 5 [p 53], 레슨 6 [p 56], 레슨 7 [p 59]에서 더욱 자세히 살펴볼 것입니다. 폼이 리스트라면, 첫번째 요소는 심볼이거나 람다(lambda)표현식이라 불리는 특별한 폼일 것입니다. (람다 표현식에 대한것은 잠시 뒤로 미루겠습니다.) 심볼은 함수의 이름을 짓습니다. 리스프에서 심볼 +, -, *, /는 일반적인 산술 연산자입니다: 덧셈, 빨셈, 곱셈, 나누기. 각 심볼은 산술 연산을 수행하는 함수와 연관되어있습니다. 따라서 리스프가 폼 (+ 2 3)을 평가하면, 이는 덧셈 함수+에 인자 2와 3을 적용시킬 것이며, 예상되듯이 결과 5를 반환할 것입니다. 함수로서 심볼 +가 인자들 앞에 있습니다. 이는 전위 표기법(prefix notation)입니다. 리스프가 리스트를 폼으로 평가하기 위해 무얼할 것인지 이해하기 위해선, 리스트의 첫번째 요소를 살펴보시기 바랍니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 폼(form)은 평가될 수 있습니다.","id":"8","title":"폼(form)은 평가될 수 있습니다."},"9":{"body":"주어진 리스트를 평가할때 리스프는 폼을 함수 호출로써 다룹니다. 지금부터 우리는 수 많은 리스프의 평가를 보게 될 것이며, 리스프의 입력과 이의 반응을 구분하기 위해 다음과 같이 시각적 표시를 할 것입니다: (어떠한 리스프 입력)\n;;=> 리스프 평가의 결과 ;;>> 리스프 출력\n;;<< 리스프에 입력\n;;>| 리스프의 에러 메시지 예: (+ 4 9)\n;;=> 13 (- 5 7)\n;;=> -2 (* 3 9)\n;;=> 27 (/ 15.0 2)\n;;=> 7.5 위 경우에서 보듯이, 평가된 폼은 리스트입니다. 각각의 첫번째 요소는 심볼이자 함수의 이름입니다. 남아있는 요소는 해당 함수의 인자입니다. 여기서, 인자는 모두 숫자이며, 숫자는 스스로 평가된다는 것을 알 수 있습니다. 여기 몇몇 예제가 더 있습니다: (atom 123)\n;;=> T (numberp 123)\n;;=> T (atom :foo)\n;;=> T (numberp :foo)\n;;=> NIL atom과 numberp는 술어(predicate)입니다. 술어는 참 혹은 거짓을 반환합니다. 리스프에서 NIL은 거짓을 나타냅니다. NIL이 아닌 것은 모두 참입니다. 딱히 의미있는 값이 아니면 술어는 관습적으로 참을 의미하는 T를 반환하게 되어 있습니다. atom은 인자가 리스프의 아톰이라면 T를 반환합니다. numberp는 인자가 숫자이면 T를 반환합니다. 위의 폼들을 평가하기 위해, 리스프는 우선 (좌측에서 우측으로) 인자를 평가하고, 그런 다음 첫번째 요소를 평가하여 함수를 얻은 후, 앞선 인자들을 함수에 적용합니다. 몇몇 예외가 있지만, 그것들은 이번 레슨의 끝부분에서 배울 것입니다. 리스프는 리스트 폼을 평가하기 위해 다음과 같은 작업을 수행합니다: 나머지 요소들을 좌측에서부터 우측으로 인자들을 평가한다. 첫번째 요소에서 함수를 얻는다. 함수에 인자들을 적용한다. 아톰 또한 리스프의 폼이라는 것을 명심하시기 바랍니다. 주어진 아톰이 평가되면, 리스프는 아톰이 지닌 값을 반환합니다: 17.95\n;;=> 17.95 :A-KEYWORD\n;;=> :A-KEYWORD *FEATURES*\n;;=> (:ANSI-CL :CLOS :COMMON-LISP) \"Hello, world!\"\n;;=> \"Hello, world!\" WHAT-IS-THIS?\n;;>| Error: Unbound variable 숫자와 키워드는 스스로 평가됩니다. 문자열도 그러합니다. *FEATURES*는 리스프에 의해 미리 정의된 변수입니다. 여러분의 시스템은 아마도 다른 값을 반환할 것입니다. 심볼 WHAT-IS-THIS?는 리스프에 의해 미리 정의되지 않아 값을 지니지 않으며, 이에 값을 얻을 수 없습니다. 시스템은 값 대신에 에러메시지로 응답할 것입니다. 에러 메시지 앞에 ;;>|를 붙여 표시하였습니다. 시스템에 따라 다른 에러 메시지가 출력될 수 있습니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수는 인자를 받을 수 있습니다.","id":"9","title":"함수는 인자를 받을 수 있습니다."}},"length":40,"save":true},"fields":["title","body","breadcrumbs"],"index":{"body":{"root":{"0":{")":{"1":{"df":1,"docs":{"5":{"tf":1.0}}},"df":0,"docs":{}},"1":{"df":1,"docs":{"3":{"tf":1.0}}},"2":{"df":1,"docs":{"7":{"tf":1.0}}},"3":{"df":2,"docs":{"1":{"tf":1.0},"16":{"tf":1.0}}},"4":{"df":1,"docs":{"22":{"tf":1.0}}},"5":{"df":1,"docs":{"27":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.0}}},"7":{"df":1,"docs":{"34":{"tf":1.0}}},"8":{"df":1,"docs":{"35":{"tf":1.0}}},"9":{"df":1,"docs":{"36":{"tf":1.0}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951}}},"1":{"0":{"df":3,"docs":{"29":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.0}}},"1":{"df":1,"docs":{"38":{"tf":1.0}}},"2":{".":{"0":{"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":3,"docs":{"1":{"tf":1.0},"20":{"tf":1.0},"39":{"tf":1.0}}},"3":{"df":3,"docs":{"19":{"tf":1.0},"25":{"tf":1.0},"9":{"tf":1.0}}},"5":{".":{"0":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}},"7":{".":{"9":{"5":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"8":{".":{"3":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"8":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}},"9":{"5":{"4":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"10":{"tf":1.4142135623730951},"17":{"tf":2.449489742783178},"19":{"tf":2.23606797749979},"23":{"tf":3.4641016151377544},"24":{"tf":2.449489742783178},"25":{"tf":1.7320508075688772},"30":{"tf":1.0},"4":{"tf":2.23606797749979},"5":{"tf":2.449489742783178}}},"2":{"0":{"df":0,"docs":{},"장":{"df":0,"docs":{},"에":{"df":0,"docs":{},"서":{"df":0,"docs":{},"는":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"2":{"7":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"3":{"0":{"df":1,"docs":{"5":{"tf":1.0}}},"8":{"df":1,"docs":{"10":{"tf":1.0}}},"df":1,"docs":{"20":{"tf":2.0}}},"4":{"7":{"df":2,"docs":{"29":{"tf":1.0},"8":{"tf":1.0}}},"df":0,"docs":{}},"5":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"7":{"df":2,"docs":{"4":{"tf":1.0},"9":{"tf":1.0}}},"8":{"df":1,"docs":{"5":{"tf":1.0}}},"9":{"df":1,"docs":{"10":{"tf":1.0}}},"df":13,"docs":{"10":{"tf":1.4142135623730951},"14":{"tf":1.0},"17":{"tf":3.1622776601683795},"18":{"tf":1.0},"19":{"tf":1.7320508075688772},"23":{"tf":2.8284271247461903},"24":{"tf":2.449489742783178},"25":{"tf":2.0},"30":{"tf":1.0},"4":{"tf":2.449489742783178},"5":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}},"df":0,"docs":{}}},"3":{"1":{"df":1,"docs":{"29":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}},"2":{"df":1,"docs":{"19":{"tf":1.0}}},"4":{"2":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"df":1,"docs":{"4":{"tf":1.0}}},"5":{".":{"9":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.0}}},"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":10,"docs":{"10":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":2.0},"24":{"tf":2.0},"25":{"tf":2.23606797749979},"30":{"tf":1.4142135623730951},"4":{"tf":2.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"4":{"2":{"df":1,"docs":{"12":{"tf":1.0}}},"df":6,"docs":{"1":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.4142135623730951},"25":{"tf":2.449489742783178},"4":{"tf":1.7320508075688772},"9":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}},"5":{"0":{"df":1,"docs":{"17":{"tf":1.0}}},"1":{"2":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"2":{".":{"8":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"8":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"8":{"tf":1.0}}},"7":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"8":{"tf":1.0}}},"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":1.4142135623730951},"25":{"tf":2.23606797749979},"4":{"tf":1.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"6":{"1":{"df":1,"docs":{"14":{"tf":1.0}}},"3":{"df":1,"docs":{"10":{"tf":1.0}}},"5":{"df":2,"docs":{"29":{"tf":1.0},"30":{"tf":1.0}}},"df":1,"docs":{"8":{"tf":1.0}}},"7":{".":{"5":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"2":{"df":1,"docs":{"10":{"tf":1.0}}},"7":{"df":2,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":1.0}}},"df":2,"docs":{"8":{"tf":1.0},"9":{"tf":1.0}}},"8":{"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"25":{"tf":1.0}}},"5":{"df":1,"docs":{"18":{"tf":1.0}}},"9":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}}},"df":2,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772}}},"9":{"7":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"9":{"df":2,"docs":{"17":{"tf":2.0},"19":{"tf":1.0}}},"df":2,"docs":{"5":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"5":{"tf":1.4142135623730951},"6":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":2.0}}}}}},"b":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}}},"df":6,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"20":{"tf":3.0},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}}},"y":{"df":1,"docs":{"0":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"5":{"tf":1.4142135623730951}}}},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"d":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"9":{"tf":1.0}},"o":{"df":1,"docs":{"9":{"tf":1.0}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"1":{"tf":1.0},"2":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"n":{"d":{"df":2,"docs":{"19":{"tf":3.1622776601683795},"21":{"tf":1.0}}},"df":3,"docs":{"23":{"tf":4.0},"24":{"tf":1.0},"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"28":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":2.23606797749979},"17":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"y":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":1,"docs":{"19":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"f":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.7320508075688772}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}},"h":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"q":{"df":3,"docs":{"29":{"tf":2.23606797749979},"31":{"tf":2.23606797749979},"32":{"tf":1.0}},"l":{"df":3,"docs":{"19":{"tf":2.8284271247461903},"4":{"tf":1.0},"5":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.0},"7":{"tf":1.0}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"7":{"tf":1.0},"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"x":{")":{"(":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":2.23606797749979}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.7320508075688772}}}}}}},"df":1,"docs":{"18":{"tf":2.449489742783178}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"19":{"tf":1.0},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":2.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"y":{"%":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}},"g":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":3,"docs":{"10":{"tf":1.4142135623730951},"24":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"i":{"df":1,"docs":{"10":{"tf":1.4142135623730951}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{":":{"/":{"/":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"8":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}}}},"l":{"1":{"df":1,"docs":{"31":{"tf":3.7416573867739413}}},"2":{"df":1,"docs":{"31":{"tf":3.1622776601683795}}},"3":{"df":1,"docs":{"31":{"tf":2.23606797749979}}},"a":{"df":0,"docs":{},"m":{"b":{"d":{"a":{"df":1,"docs":{"8":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":2.0}},"s":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"'":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":5,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.0},"2":{"tf":1.0},"28":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":8,"docs":{"24":{"tf":2.6457513110645907},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":2.0},"4":{"tf":1.0},"6":{"tf":1.0},"8":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"27":{"tf":1.0},"28":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"15":{"tf":1.0},"19":{"tf":1.4142135623730951},"23":{"tf":3.1622776601683795},"26":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.4142135623730951},"9":{"tf":1.7320508075688772}}}},"o":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"19":{"tf":2.0},"30":{"tf":1.7320508075688772}},"p":{"df":2,"docs":{"15":{"tf":1.0},"9":{"tf":2.0}}}}}},"df":0,"docs":{}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.7320508075688772}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}},"p":{"df":11,"docs":{"10":{"tf":1.7320508075688772},"12":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":2.0},"20":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"8":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}}}},"q":{"df":1,"docs":{"18":{"tf":2.0}},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":4,"docs":{"20":{"tf":2.449489742783178},"21":{"tf":1.0},"23":{"tf":1.0},"25":{"tf":1.0}},"e":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"r":{"df":1,"docs":{"18":{"tf":2.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"25":{"tf":4.0},"26":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"17":{"tf":1.7320508075688772}},"q":{"df":8,"docs":{"17":{"tf":3.7416573867739413},"18":{"tf":2.449489742783178},"20":{"tf":2.449489742783178},"21":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":2.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":1.7320508075688772}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":2.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"28":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"9":{"tf":2.449489742783178}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"o":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":2,"docs":{"17":{"tf":1.0},"28":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"28":{"tf":1.0}}}}}},"u":{"df":1,"docs":{"18":{"tf":1.7320508075688772}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"28":{"tf":1.0}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"10":{"tf":2.23606797749979},"15":{"tf":1.0}}}},"r":{"df":1,"docs":{"17":{"tf":4.0}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"17":{"tf":2.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"33":{"tf":1.0}}}},"w":{"df":1,"docs":{"18":{"tf":2.6457513110645907}},"e":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"x":{"(":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":3,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":2.0},"5":{"tf":3.3166247903554}}},"y":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"z":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}}}},"breadcrumbs":{"root":{"0":{")":{"1":{"df":1,"docs":{"5":{"tf":1.0}}},"df":0,"docs":{}},"1":{"df":4,"docs":{"3":{"tf":1.7320508075688772},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0}}},"2":{"df":9,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"7":{"tf":1.7320508075688772},"8":{"tf":1.0},"9":{"tf":1.0}}},"3":{"df":39,"docs":{"1":{"tf":1.7320508075688772},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":2.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.4142135623730951},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"21":{"tf":1.4142135623730951},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}},"4":{"df":5,"docs":{"22":{"tf":1.7320508075688772},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0}}},"5":{"df":6,"docs":{"27":{"tf":1.7320508075688772},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.7320508075688772}}},"7":{"df":1,"docs":{"34":{"tf":1.7320508075688772}}},"8":{"df":1,"docs":{"35":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"36":{"tf":1.7320508075688772}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951}}},"1":{"0":{"df":3,"docs":{"29":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.7320508075688772}}},"1":{"df":1,"docs":{"38":{"tf":1.7320508075688772}}},"2":{".":{"0":{"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":39,"docs":{"1":{"tf":1.7320508075688772},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"21":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":2.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}},"3":{"df":3,"docs":{"19":{"tf":1.0},"25":{"tf":1.0},"9":{"tf":1.0}}},"5":{".":{"0":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}},"7":{".":{"9":{"5":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"8":{".":{"3":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"8":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}},"9":{"5":{"4":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"10":{"tf":1.4142135623730951},"17":{"tf":2.449489742783178},"19":{"tf":2.23606797749979},"23":{"tf":3.4641016151377544},"24":{"tf":2.449489742783178},"25":{"tf":1.7320508075688772},"30":{"tf":1.0},"4":{"tf":2.23606797749979},"5":{"tf":2.449489742783178}}},"2":{"0":{"df":0,"docs":{},"장":{"df":0,"docs":{},"에":{"df":0,"docs":{},"서":{"df":0,"docs":{},"는":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"2":{"7":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"3":{"0":{"df":1,"docs":{"5":{"tf":1.0}}},"8":{"df":1,"docs":{"10":{"tf":1.0}}},"df":1,"docs":{"20":{"tf":2.0}}},"4":{"7":{"df":2,"docs":{"29":{"tf":1.0},"8":{"tf":1.0}}},"df":0,"docs":{}},"5":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"7":{"df":2,"docs":{"4":{"tf":1.0},"9":{"tf":1.0}}},"8":{"df":1,"docs":{"5":{"tf":1.0}}},"9":{"df":1,"docs":{"10":{"tf":1.0}}},"df":13,"docs":{"10":{"tf":1.4142135623730951},"14":{"tf":1.0},"17":{"tf":3.1622776601683795},"18":{"tf":1.0},"19":{"tf":1.7320508075688772},"23":{"tf":2.8284271247461903},"24":{"tf":2.449489742783178},"25":{"tf":2.0},"30":{"tf":1.0},"4":{"tf":2.449489742783178},"5":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}},"df":0,"docs":{}}},"3":{"1":{"df":1,"docs":{"29":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}},"2":{"df":1,"docs":{"19":{"tf":1.0}}},"4":{"2":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"df":1,"docs":{"4":{"tf":1.0}}},"5":{".":{"9":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.0}}},"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":10,"docs":{"10":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":2.0},"24":{"tf":2.0},"25":{"tf":2.23606797749979},"30":{"tf":1.4142135623730951},"4":{"tf":2.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"4":{"2":{"df":1,"docs":{"12":{"tf":1.0}}},"df":6,"docs":{"1":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.4142135623730951},"25":{"tf":2.449489742783178},"4":{"tf":1.7320508075688772},"9":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}},"5":{"0":{"df":1,"docs":{"17":{"tf":1.0}}},"1":{"2":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"2":{".":{"8":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"8":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"8":{"tf":1.0}}},"7":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"8":{"tf":1.0}}},"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":1.4142135623730951},"25":{"tf":2.23606797749979},"4":{"tf":1.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"6":{"1":{"df":1,"docs":{"14":{"tf":1.0}}},"3":{"df":1,"docs":{"10":{"tf":1.0}}},"5":{"df":2,"docs":{"29":{"tf":1.0},"30":{"tf":1.0}}},"df":1,"docs":{"8":{"tf":1.0}}},"7":{".":{"5":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"2":{"df":1,"docs":{"10":{"tf":1.0}}},"7":{"df":2,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":1.0}}},"df":2,"docs":{"8":{"tf":1.0},"9":{"tf":1.0}}},"8":{"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"25":{"tf":1.0}}},"5":{"df":1,"docs":{"18":{"tf":1.0}}},"9":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}}},"df":2,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772}}},"9":{"7":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"9":{"df":2,"docs":{"17":{"tf":2.0},"19":{"tf":1.0}}},"df":2,"docs":{"5":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"5":{"tf":1.7320508075688772},"6":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":2.0}}}}}},"b":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}}},"df":6,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"20":{"tf":3.0},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}}},"y":{"df":1,"docs":{"0":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"5":{"tf":1.4142135623730951}}}},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"d":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"9":{"tf":1.0}},"o":{"df":1,"docs":{"9":{"tf":1.0}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"1":{"tf":1.0},"2":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"n":{"d":{"df":2,"docs":{"19":{"tf":3.3166247903554},"21":{"tf":1.0}}},"df":3,"docs":{"23":{"tf":4.123105625617661},"24":{"tf":1.0},"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"28":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":2.23606797749979},"17":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"y":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":1,"docs":{"19":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"f":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.7320508075688772}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}},"h":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"q":{"df":3,"docs":{"29":{"tf":2.23606797749979},"31":{"tf":2.23606797749979},"32":{"tf":1.0}},"l":{"df":3,"docs":{"19":{"tf":2.8284271247461903},"4":{"tf":1.0},"5":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.4142135623730951},"7":{"tf":1.4142135623730951}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"7":{"tf":1.4142135623730951},"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"x":{")":{"(":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":2.23606797749979}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.7320508075688772}}}}}}},"df":1,"docs":{"18":{"tf":2.449489742783178}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"19":{"tf":1.0},"25":{"tf":3.0},"26":{"tf":1.0},"30":{"tf":2.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"8":{"tf":1.7320508075688772}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"y":{"%":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}},"g":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":3,"docs":{"10":{"tf":1.4142135623730951},"24":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"i":{"df":1,"docs":{"10":{"tf":1.4142135623730951}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{":":{"/":{"/":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"8":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}}}},"l":{"1":{"df":1,"docs":{"31":{"tf":3.7416573867739413}}},"2":{"df":1,"docs":{"31":{"tf":3.1622776601683795}}},"3":{"df":1,"docs":{"31":{"tf":2.23606797749979}}},"a":{"df":0,"docs":{},"m":{"b":{"d":{"a":{"df":1,"docs":{"8":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":2.0}},"s":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"'":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":5,"docs":{"0":{"tf":1.7320508075688772},"1":{"tf":1.0},"2":{"tf":1.0},"28":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":8,"docs":{"24":{"tf":2.8284271247461903},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":2.0},"4":{"tf":1.0},"6":{"tf":1.0},"8":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"27":{"tf":1.4142135623730951},"28":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"15":{"tf":1.0},"19":{"tf":1.4142135623730951},"23":{"tf":3.1622776601683795},"26":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.4142135623730951},"9":{"tf":1.7320508075688772}}}},"o":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"19":{"tf":2.0},"30":{"tf":1.7320508075688772}},"p":{"df":2,"docs":{"15":{"tf":1.0},"9":{"tf":2.0}}}}}},"df":0,"docs":{}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.7320508075688772}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}},"p":{"df":11,"docs":{"10":{"tf":1.7320508075688772},"12":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":2.0},"20":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"8":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}}}},"q":{"df":1,"docs":{"18":{"tf":2.0}},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":4,"docs":{"20":{"tf":2.6457513110645907},"21":{"tf":1.0},"23":{"tf":1.0},"25":{"tf":1.0}},"e":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"r":{"df":1,"docs":{"18":{"tf":2.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"25":{"tf":4.123105625617661},"26":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"17":{"tf":1.7320508075688772}},"q":{"df":8,"docs":{"17":{"tf":3.872983346207417},"18":{"tf":2.449489742783178},"20":{"tf":2.449489742783178},"21":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":2.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":1.7320508075688772}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":2.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"28":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"9":{"tf":2.449489742783178}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"o":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":2,"docs":{"17":{"tf":1.0},"28":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"28":{"tf":1.0}}}}}},"u":{"df":1,"docs":{"18":{"tf":1.7320508075688772}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"28":{"tf":1.0}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"10":{"tf":2.23606797749979},"15":{"tf":1.0}}}},"r":{"df":1,"docs":{"17":{"tf":4.0}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"17":{"tf":2.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"33":{"tf":1.7320508075688772}}}},"w":{"df":1,"docs":{"18":{"tf":2.6457513110645907}},"e":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"x":{"(":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":3,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":2.0},"5":{"tf":3.3166247903554}}},"y":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"z":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}}}},"title":{"root":{"0":{"1":{"df":1,"docs":{"3":{"tf":1.0}}},"2":{"df":1,"docs":{"7":{"tf":1.0}}},"3":{"df":2,"docs":{"1":{"tf":1.0},"16":{"tf":1.0}}},"4":{"df":1,"docs":{"22":{"tf":1.0}}},"5":{"df":1,"docs":{"27":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.0}}},"7":{"df":1,"docs":{"34":{"tf":1.0}}},"8":{"df":1,"docs":{"35":{"tf":1.0}}},"9":{"df":1,"docs":{"36":{"tf":1.0}}},"df":0,"docs":{}},"1":{"0":{"df":1,"docs":{"37":{"tf":1.0}}},"1":{"df":1,"docs":{"38":{"tf":1.0}}},"2":{"df":2,"docs":{"1":{"tf":1.0},"39":{"tf":1.0}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"19":{"tf":1.0}}},"df":1,"docs":{"23":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.0},"7":{"tf":1.0}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":1,"docs":{"7":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"8":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.0}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"24":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"27":{"tf":1.0}}}}},"df":0,"docs":{}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"q":{"df":1,"docs":{"17":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"df":0,"docs":{},"s":{"df":1,"docs":{"33":{"tf":1.0}}}}}}},"lang":"English","pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5"},"results_options":{"limit_results":30,"teaser_word_count":30},"search_options":{"bool":"OR","expand":true,"fields":{"body":{"boost":1},"breadcrumbs":{"boost":1},"title":{"boost":2}}}} \ No newline at end of file +{"doc_urls":["Index.html#들어가며","ch03/ch03.html#03-12개의-레슨으로-배우는-필수-리스프","ch03/ch03.html#짚고-넘어가기","ch03/lesson_01.html#레슨-01-필수---신택스essential-syntax","ch03/lesson_01.html#리스트는-괄호로-감싸져있다","ch03/lesson_01.html#아톰atom은-공백이나-괄호로-분리된-것입니다","ch03/lesson_01.html#짚고-넘어가기","ch03/lesson_02.html#레슨-02-필수---평가essential-evaluation","ch03/lesson_02.html#폼form은-평가될-수-있습니다","ch03/lesson_02.html#함수는-인자를-받을-수-있습니다","ch03/lesson_02.html#함수는-다수의-값을-반환-할-수-있다","ch03/lesson_02.html#함수에서-인자를-수정하지-않는다","ch03/lesson_02.html#인자는-보통은-함수가-적용-전에-평가된다","ch03/lesson_02.html#인자들은-좌측에서-우측으로-순서대로-평가된다","ch03/lesson_02.html#스페셜-폼과-메크로는-인자의-평가하는-방법을-바꿀-수-있다","ch03/lesson_02.html#짚고-넘어가기","ch03/lesson_03.html#레슨-03-스페셜-폼과-매크로에-대한-예제","ch03/lesson_03.html#setq","ch03/lesson_03.html#let","ch03/lesson_03.html#cond","ch03/lesson_03.html#quote","ch03/lesson_03.html#짚고-넘어가기","ch03/lesson_04.html#레슨-04-조립과-분해","ch03/lesson_04.html#cons","ch03/lesson_04.html#list","ch03/lesson_04.html#first-와--rest","ch03/lesson_04.html#짚고-넘어가기","ch03/lesson_05.html#레슨-05-네이밍과-아이덴티티naming-and-identity","ch03/lesson_05.html#심볼은-단지-이름","ch03/lesson_05.html#심볼은-항상-유니크하다","ch03/lesson_05.html#심볼로-값에-이름-붙일-수-있다","ch03/lesson_05.html#값은-하나-이상의-이름을-가질-수-있다","ch03/lesson_05.html#짚고-넘어가기","ch03/lesson_06.html#레슨-06-바인딩-vs-할당","ch03/lesson_07.html#레슨-07-필수---함수-정의","ch03/lesson_08.html#레슨-08-필수---매크로-정의","ch03/lesson_09.html#레슨-09-필수---다중-값","ch03/lesson_10.html#레슨-10-프리뷰---다른-데이터-타입","ch03/lesson_11.html#레슨-11-필수---입력과-출력","ch03/lesson_12.html#레슨-12-필수---리더-매크로"],"index":{"documentStore":{"docInfo":{"0":{"body":48,"breadcrumbs":0,"title":0},"1":{"body":6,"breadcrumbs":4,"title":2},"10":{"body":22,"breadcrumbs":3,"title":0},"11":{"body":0,"breadcrumbs":3,"title":0},"12":{"body":2,"breadcrumbs":3,"title":0},"13":{"body":0,"breadcrumbs":3,"title":0},"14":{"body":5,"breadcrumbs":3,"title":0},"15":{"body":8,"breadcrumbs":3,"title":0},"16":{"body":1,"breadcrumbs":4,"title":1},"17":{"body":84,"breadcrumbs":4,"title":1},"18":{"body":100,"breadcrumbs":3,"title":0},"19":{"body":59,"breadcrumbs":4,"title":1},"2":{"body":5,"breadcrumbs":2,"title":0},"20":{"body":32,"breadcrumbs":4,"title":1},"21":{"body":3,"breadcrumbs":3,"title":0},"22":{"body":0,"breadcrumbs":4,"title":1},"23":{"body":51,"breadcrumbs":4,"title":1},"24":{"body":29,"breadcrumbs":4,"title":1},"25":{"body":64,"breadcrumbs":5,"title":2},"26":{"body":8,"breadcrumbs":3,"title":0},"27":{"body":0,"breadcrumbs":6,"title":3},"28":{"body":32,"breadcrumbs":3,"title":0},"29":{"body":24,"breadcrumbs":3,"title":0},"3":{"body":0,"breadcrumbs":6,"title":3},"30":{"body":23,"breadcrumbs":3,"title":0},"31":{"body":63,"breadcrumbs":3,"title":0},"32":{"body":1,"breadcrumbs":3,"title":0},"33":{"body":0,"breadcrumbs":6,"title":2},"34":{"body":0,"breadcrumbs":4,"title":1},"35":{"body":0,"breadcrumbs":4,"title":1},"36":{"body":0,"breadcrumbs":4,"title":1},"37":{"body":0,"breadcrumbs":4,"title":1},"38":{"body":0,"breadcrumbs":4,"title":1},"39":{"body":0,"breadcrumbs":4,"title":1},"4":{"body":51,"breadcrumbs":3,"title":0},"5":{"body":48,"breadcrumbs":4,"title":1},"6":{"body":2,"breadcrumbs":3,"title":0},"7":{"body":0,"breadcrumbs":6,"title":3},"8":{"body":29,"breadcrumbs":4,"title":1},"9":{"body":52,"breadcrumbs":3,"title":0}},"docs":{"0":{"body":"David Lamkins의 Successful Lisp 한국어 번역본입니다. 번역을 허락해주셔서 감사합니다 David Lamkins. 그의 웹사이트는 http://lamkins.net , github는 https://github.com/TieDyedDevil 입니다. 그의 책은 아마존 닷컴 이곳 에서 원서로 구입할 수 있으며 온라인 버전은 이곳 에서 볼 수 있습니다. Successful Lisp의 모든 저작권은 David Lamkins에게 있습니다. This is Korean translation version of David Lamkins's Successful Lisp. David Lamkins, Thank you for allowing me to translate your book. His personnal website is http://lamkins.net , github is https://github.com/TieDyedDevil . You can buy His original book on Amazon.com here and you can check his online version of successfull lisp here . David Lamkins owns All of Successful Lisp's copyright.","breadcrumbs":"들어가며 » 들어가며","id":"0","title":"들어가며"},"1":{"body":"이번 장은 여러분에게 리스프를 시작하기에 앞서 알아야 할 모든것을 가르칠 것입니다. 언어의 코어 기능들을 모두 다룰 것입니다. 여러분이 이 코어를 리스프 자체라 생각하고, 그렇지 않은 것은 하나의 거대한 표준 라이브러리라 생각하셨으면 합니다. 책을 읽은 후 이를 배경으로, Common Lisp : The Language, 2nd Edition과 같은 메뉴얼을 참조하면, 더욱 편하게 리스프의 남은 부분들을 배울 수 있을 것입니다. 여러분은 이번 장을 한번에 쭉 읽어야 합니다. 이따금 다음 단락이나 다음 장에대해 언급하겠지만, 이번장을 이해하기 위해서 반드시 그러한 참고들을 따를 필요는 없습니다. 이번 장을 끝낼 무렵, 여러분은 이미 리스프 시스템의 키보드 앞에 앉아 4장을 진행하고 있을 것 입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 03. 12개의 레슨으로 배우는 필수 리스프","id":"1","title":"03. 12개의 레슨으로 배우는 필수 리스프"},"10":{"body":"우리는 종종 다수의 값을 반환하는 함수를 갖길 원합니다. 예를들어, 데이터베이스 전체를 살펴보는 함수는 요구하는 값과 완료상태코드를 동시에 반환해야 합니다. 이를 행할 방법으로는 해당 결과값을 저장할 위치 자체를 함수에 전달하는 것입니다; 가능은 하지만, 리스프 프로그램에서는 매우 드믄 일입니다. 또 다른 접근법은 결과와 상태코드를 하나로 묶어 하나의 반환 값으로 만드는 것입니다. 리스프는 구조체[p 72]를 포함하여 여러분에게 이를 수행할 다양한 방식을 제공합니다. 다만, 이와같이 하나로 묶는 방식은 잘못하면 가비지(29장 [p 238] 참조)가 생성되어 프로그램 작동 속도가 느려지게 만들 수 있기에 숙련된 리스프 프로그래머는 이와 같은 작업을 피합니다. 함수에서 다수의 값을 반환하는 올바른 법은 values 폼을 이용하는 것입니다. 잠시 후에 함수 컨텍스트안에서의 VALUES의 사용법을 [p 63]에서 살펴보도록 하겠습니다. 지금은, 리스프가 values 폼을 평가할때 무슨 일이 벌어지는지 살펴봅시다: (values 1 2 3 :hi \"Hello\")\n;;=> 1\n;;=> 2\n;;=> 3\n;;=> :HI\n;;=> \"Hello\" 리스프가 values 폼으로 각 인자에 대한 값을 반환하는 것을 확인할 수 있습니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수는 다수의 값을 반환 할 수 있다.","id":"10","title":"함수는 다수의 값을 반환 할 수 있다."},"11":{"body":"앞서, 결과값을 저장할 위치 자체를 인자로 함수에 넘길 수 있으며, 함수가 그 위치의 값을 바꿀 수도 있다고 말한 바가 있습니다. 다른 언어들은 이를 일반적인 레파토리로 말할지라도, 리스프 프로그램에서 매우 드문 일입니다. 저장할 위치에 키워드가 아닌 심볼이나 구조체 같은 것을 넣을 수 는 있습니다. 심볼을 넣을 경우, 함수는 심볼에 새로운 값을 넣는 코드를 수행해야만 합니다. 구조체를 넣을 경우 구조체의 각 값을 올바르게 변경하는 코드를 수행해야만 합니다. 이러한 작업 자체도 복잡하고 이렇게 작성된 프로그램을 이해하는 것도 어렵습니다. 따라서 리스프 프로그래머들은 일반적으로 인자를 수정하지 않고, 인자는 인자, 결과는 결과로 구분된 함수를 작성합니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수에서 인자를 수정하지 않는다.","id":"11","title":"함수에서 인자를 수정하지 않는다."},"12":{"body":"리스프가 함수를 평가하면, 앞서 봤던것처럼[p 42], 항상 모든 인자를 우선적으로 평가합니다. 불행히도, 모든 규칙에는 예외가 있으며, (곧 보게될 것처럼)이 규칙도 예외는 아닙니다... 문제는 리스프가 함수의 인자를 평가하지 않을 수 있다라는 점이 아니라, 리스트 폼은 함수 호출이 아닐 수 도 있다라는 점입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 인자는 (보통은) 함수가 적용 전에 평가된다.","id":"12","title":"인자는 (보통은) 함수가 적용 전에 평가된다."},"13":{"body":"리스트 폼이 함수를 호출하면, 이의 인자는 항상 좌측에서 우측으로 순서대로 평가됩니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 인자들은 좌측에서 우측으로 순서대로 평가된다","id":"13","title":"인자들은 좌측에서 우측으로 순서대로 평가된다"},"14":{"body":"리스트 폼이 함수 호출이 아닐 수 도 있다 라고 했는데, 그럼 무엇이 될 수 있을까요? 2가지 경우가 있지만, 결과는 같습니다: 몇몇 인자는 평가되며 몇몇은 평가가 안됩니다. 폼이나 폼이 아니냐에 달려있습니다. 이 예외에 대해서만 알면 됩니다. 다행히도, 대부분의 리스프 시스템은 한두번의 키 입력으로 이에 대한 온라인 문서를 여러분에게 보여줄 것입니다. 모든 인자가 평가되지 않는 폼은 두가지가 있습니다: 스페셜 폼과 매크로. 리스프는 몇몇 스페셜 폼을 미리 정의해 두었습니다. 언어 자체의 주요 기능이기에 여러분만의 스페셜 폼을 추가할 수는 없습니다. 또 리스프는 몇몇 매크로를 미리 정의해두었습니다. 단, 매크로는 저희가 작성할 수 있습니다. 리스프의 매크로를 이용하면 언어의 강력한 힘을 이용하여 우리만의 기능을 추가 할 수 있습니다. 이 장의 뒷 부분에서 간략하게 간단한 매크로를 작성해 볼 것입니다 [p 61]. 20장에서는[p 188] 복잡한 매크로에 대해 다뤄볼 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 스페셜 폼과 메크로는 인자의 평가하는 방법을 바꿀 수 있다.","id":"14","title":"스페셜 폼과 메크로는 인자의 평가하는 방법을 바꿀 수 있다."},"15":{"body":"폼(form) 키워드(:) 전위 표기법(prefix notation) atom numberp NIL T values","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 짚고 넘어가기","id":"15","title":"짚고 넘어가기"},"16":{"body":"원문 이제 스페셜 폼과 매크로에 대해 살펴보도록 하겠습니다. 다음 4개의 레슨들을 거쳐, 가장 기본적인 리스프 데이터 형식, 리스트를 이용하여 간단한 함수를 작성케 해주는 레파토리를 구축할 것입니다. 나머지 장에서는 더욱 복잡한 프로그램 구조와 데이터형식을 다룰 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » 레슨 03. 스페셜 폼과 매크로에 대한 예제","id":"16","title":"레슨 03. 스페셜 폼과 매크로에 대한 예제"},"17":{"body":"이전에, 여러분께 리스프가 심볼 폼을 평가하여 변수의 값을 받온다고 말했습니다. setq는 이 변수의 값을 설정하는 방법을 제공합니다: (setq my-name \"David\")\n;;=> \"David\" my-name\n;;=> \"David\" (setq a-variable 57)\n;;=> 57 a-variable\n;;=> 57 (setq a-variable :a-keyword)\n;;=> :A-KEYWORD setq의 첫번째 인자는 심볼입니다. 이는 평가되지 않습니다. 두번째 인자는 변수의 값으로 할당됩니다. setq는 마지막 인자의 값을 반환합니다. setq는 심볼 그 자체를 값으로 할당하고자 하기에 첫번째 인자를 평가하지 않습니다. 만일 setq가 첫번째 인자를 평가한다면, (할당될 심볼이 있어야 하기에)해당 인자의 값은 심볼이여야 합니다. set 폼이 그러한 일을 합니다: (setq var-1 'var-2)\n;;=> VAR-2 var-1\n;;=> VAR-2 var-2\n;;>| Error: Unbound variable :TODO(pyoung) (set var-1 99)\n;;=> 99 var-1\n;;=> VAR-2 VAR-2\n;;=> 99 첫번째 폼에서 '을 발견하셨나요? 이것은 다음 폼 var-2 가 평가되는 것을 방지합니다. 이번 레슨 후반에, quote[p 50]를 살펴볼때, 더욱 자세히 설명하도록 하겠습니다. 이번 예제에서는, 우선 var-1의 값을 심볼 var-2로 설정하였습니다. 그 후 var-2의 값을 확인하였고, 아무런 값도 가지지 않았다는 것을 확인하였습니다. 다음으로, (setq가 아닌) set을 이용하여 var-1의 값인 심볼 var-2에 값 99를 할당하였습니다. 사실 setq 폼은 심볼과 값을 번갈아 사용하여 짝수개의 인자를 취할 수 있습니다: (setq month \"June\" day 8 year 1954)\n;;=> 1954 month\n;;=> \"June\" day\n;;=> 8 year\n;;=> 1954 setq는 좌측에서 우측으로 할당을 수행하고, 맨 우측에 있는 값을 반환합니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » SETQ","id":"17","title":"SETQ"},"18":{"body":"let 폼은 이전에 봐왔던 것보다 좀 더 복잡해 보입니다. let폼은 중첩된 리스트를 이용하지만, 스페셜 폼은 아니기에 특정 요소만 평가됩니다: (let ((a 3) (b 4) (c 5)) (* (+ a b) c))\n;;=> 35 a\n;;>| Error: Unbound variable b\n;;>| Error: Unbound variable c\n;;>| Error: Unbound variable 위에 있는 let 폼은 심볼 a, b, c의 값을 정의 후, 이를 이용하여 산술 계산을 하였습니다. 또한 이 계산의 결과가 바로 let 폼의 결과입니다. let에서 정의된 변수가 폼을 평가한 후에는 어떠한 값도 지니지 않는다는 점을 주목하시기 바랍니다. 대게, let은 다음과 같이 생겼습니다: (let (bindings) forms) bindings에는 임의의 수의 두개의 원소를 지닌 리스트가 있으며 (각 리스트는 심볼과 값을 지닙니다), forms에는 임의의 수의 리스프 폼이 있습니다. forms의 평가를 위해, bindings에 의해 수립된 값을 이용합니다. let은 마지막 폼에 의해 반환된 값(들)을 반환합니다. 들여쓰기는 let의 동작에 영향을 미치진 않지만, 적절한 들여쓰기는 가독성을 향상시킵니다. 다음 두 동일한 폼을 살펴보시기 바랍니다: (let ((p 52.8) (q 35.9) (r (f 12.07))) (g 18.3) (f p) (f q) (g r t)) (let ((p 52.8) (q 35.9) (r (f 12.07))) (g 18.3) (f p) (f q) (g r t)) 첫번째 경우, 들여쓰기로 어떤게 바인딩이며 어떤게 폼인지 명확하게 나타납니다. 독자가 let 폼의 두 부분에서 수행된 서로 다른 규칙에 대해 자세히 알지 못할지라도, 들여쓰기는 차이를 나타냅니다. 두번째경우, 여러분은 어디에서 바인딩이 끝나며 폼이 시작되는지 알고자 한다면, 괄호를 세어야만 할 것입니다. 더욱 안좋은 것은, 들여쓰기의 부제는 let 폼의 두 부분에 의해 수행되는 역활의 차이점에 대해 시각적 단서(visual cues)를 없애버립니다. setq를 이용하여 변수를 정의하고 let 폼에서 동일한 변수 이름을 사용한다면, let을 평가하는 동안 let에 의해 정의된 값이 (setq에 의해 정의된)다른 값을 대체할 것입니다: (setq a 89)\n;;=> 89 a\n;;=> 89 (let ((a 3)) (+ a 2))\n;;=> 5 a\n;;=> 89 좌에서 우로 순서대로 값의 할당이 이루어지는 setq와 달리, let은 모두 동일한 시간에 변수를 바인드합니다. (setq w 77)\n;;=> 77 (let ((w 8) (x w)) (+ w x))\n;;=> 85 let은 w를 8로 x는 w로 바인드 하였습니다. 동일한 시각에 이러한 바인딩이 발생하였으므로 w는 여전히 값 77을 지니게 됩니다. 리스프는 순서대로 바인딩을 수행하는 let*이라는 let의 변종을 지녔습니다. (setq u 37)\n;;=> 37 (let* ((v 4) (u v)) (+ u v))\n;;=> 8","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » LET","id":"18","title":"LET"},"19":{"body":"cond 매크로는 조건적으로 리스프 폼을 평가하도록 합니다. let처럼, cond는 폼의 다양한 부분을 구분짓기 위해 괄호를 이용합니다. 이 예제를 살펴보시기 바랍니다: (let ((a 1) (b 2) (c 1) (d 1)) (cond ((eql a b) 1) ((eql a c) \"First form\" 2) ((eql a d) 3)))\n;;=> 2 위에 정의된 cond 폼에서 3개의 절을 정의하였습니다. 각 절은 테스트 폼으로 시작하는 리스트이며 원하는 만큼의 바디(body) 폼이 뒷따라 나옵니다. 바디 폼은 테스트가 성공일시 실행되는 코드 입니다. 순차적으로 절이 선택됩니다 - 하나의 테스트가 성공하면 그에 대응하는 바디 폼이 평가되고 그 바디 폼의 마지막 값이 cond 폼의 값이 됩니다. cond는 여러 절을 다룰 수 있기에, 스페셜 폼 if에 비해 범용적입니다. 이제 예제에서 어떤일이 수행되는지 살펴보도록 하겠습니다. 두 인자가 동일하거나, 동일한 숫자면 eql 은 T를 반환합니다(17장[p 174]에서 다루게될 미묘한 다름이 있긴 합니다). 3개의 테스트중 두개만 실행되었습니다. 첫번째 (eql a b)는 NIL을 반환합니다. 그러므로, 1을 포함하는 절은 넘어갑니다. 두번째 절은 (eql a c)를 테스트하며 이는 참입니다. 이 테스트가 NIL이 아닌 값을 반환하기에, 절의 나머지 부분이 평가가 되어, 마지막 폼의 값이 cond의 값으로 반환된 다음, 최종적으로 let의 반환값으로써 반환됩니다. 세번째 절은 이미 이전 절이 선택되었기에 평가되지 않습니다 - 절들은 순서대로 선택됩니다. 관습적으로 cond의 마지막 절의 테스트 폼으로 T를 사용합니다. 이는 다른 절들이 모두 테스트에 실패를 하면 마지막 절의 바디 폼이 평가된다는 것을 보증합니다. 기본 값을 반환하거나 기타 다른 적절한 작업을 수행하기 위해 이 마지막 절을 활용할 수 있습니다. 여기 예제가 있습니다: (let ((a 32)) (cond ((eql a 13) \"An unlucky number\") ((eql a 99) \"A lucky number\") (t \"Nothing special about this number\")))\n;;=> \"Nothing special about this number\"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » COND","id":"19","title":"COND"},"2":{"body":"Common Lisp : The Language, 2nd Edition","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 짚고 넘어가기","id":"2","title":"짚고 넘어가기"},"20":{"body":"가끔씩 리스프의 평가 규칙을 적용시키지 않고 싶을 때가 있을것입니다.. 이러한 예 중 하나를 꼽자면, 함수 호출의 인자로써 심볼의 값보다 심볼 그 자체를 쓰고 싶을 때입니다: (setq a 97)\n;;=> 97 a\n;;=> 97 (setq b 23)\n;;=> 23 (setq a b)\n;;=> 23 a\n;;=> 23 (setq a (quote b))\n;;=> B a\n;;=> B 차이점은 (setq a b)에서 사용된 b의 값 과 (setq a (quote b))에서의 심볼 b입니다. quote 폼은 매우 자주 사용되며, 리스프는 약칭 표기를 제공합니다: (QUOTE form) == 'form 리스프는 리더 매크로를 통해 '와 quote를 동일하게 처리합니다. 레슨 12 [p 82]에서 어떻게 여러분만의 리더 매크로를 정의할 수 있는지 간략하게 살펴볼 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » QUOTE","id":"20","title":"QUOTE"},"21":{"body":"setq let cond ', quote","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 03. 스페셜 폼과 매크로에 대한 예제 » 짚고 넘어가기","id":"21","title":"짚고 넘어가기"},"22":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » 레슨 04. 조립과 분해","id":"22","title":"레슨 04. 조립과 분해"},"23":{"body":"cons는 리스트의 가장 기본적인 구성 요소입니다. 이는 함수므로 이의 인자들을 평가합니다. 리스트를 만들때에는 cons의 두번째 인자로 리스트 혹은 NIL이 들어올것입니다. (cons 1 nil)\n;;=> (1) (cons 2 (cons 1 nil))\n;;=> (2 1) (cons 3 (cons 2 (cons 1 nil)))\n;;=> (3 2 1) cons는 새로운 항목을 리스트의 시작 부분에 추가합니다. 비어있는 리스트 ( ) 는 NIL과 동일하며, ( ) == NIL 따라서 이렇게 작성할 수 있습니다: (cons 1 ())\n;;=> (1) (cons 2 (cons 1 ()))\n;;=> (2 1) (cons 3 (cons 2 (cons 1 ())))\n;;=> (3 2 1) 혼란스럽게 느껴진다면, 맞습니다, NIL에는 뭔가 특별한 능력이 있습니다. NIL은 키워드는 아니지만 자기 자신을 상수 값으로 가지는 리스프의 두개의 심볼 중 하나입니다. 또 다른 심볼은 T입니다. ( ) == NIL이란 것과 NIL이 스스로 평가된다는 것을 종합해보면, 이는 (quote ())를 ()로 쓸 수 있다는 것을 의미합니다. 그렇지 않았다면, 리스프는 빈 리스트를 처리하기 위해 평가 규칙에 예외를 추가해야 했을 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » CONS","id":"23","title":"CONS"},"24":{"body":"아마 여러분이 눈치챗다면, 중첩된 cons 폼으로도 리스트가 만들어질 수 있다는 것은 조금 지루할 수 도 있습니다. list 폼은 좀더 명료한 방법으로 동일한 일을 수행합니다: (list 1 2 3)\n;;=> (1 2 3) list는 여러 인자를 취할 수 있습니다. list는 함수이기에, 이는 인자를 평가합니다: (list 1 2 :hello \"there\" 3)\n;;=> (1 2 :HELLO \"there\" 3) (let ((a :this) (b :and) (c :that)) (list a 1 b c 2))\n;;=> (:THIS 1 :AND :THAT 2)","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » LIST","id":"24","title":"LIST"},"25":{"body":"리스트가 (첫번째와 나머지) 두 부분으로 만들어졌다고 가정한다면, 여러분은 first와 rest 두 연산자를 이용하여 리스트의 개별 원소들을 얻을 수 있습니다: (setq my-list (quote (1 2 3 4 5)))\n;;=> (1 2 3 4 5) (first my-list)\n;;=> 1 (rest my-list)\n;;=> (2 3 4 5) (first (rest my-list))\n;;=> 2 (rest (rest my-list))\n;;=> (3 4 5) (first (rest (rest my-list)))\n;;=> 3 (rest (rest (rest my-list)))\n;;=> (4 5) (first (rest (rest (rest my-list))))\n;;=> 4 first와 rest 함수를 이리저리 엮는 것은 분명 지루한 작업일 것입니다. 또, 이러한 접근 법은 프로그램에서 특정 요소만을 선택하고자 할때나 혹은 리스트의 길이가 무한일때 잘 먹히지 않을 것입니다. 4장[p 84] 에서 재귀 함수를 정의할때 이러한 문제를 어떻게 해결하는지 살펴볼 것입니다. 나중에 13장에서 [p 150], 리스프가 제공하는 리스트 혹은 시퀀스 속 요소를 선택할 수 있는 함수들을 살펴 볼 것입니다 first와 rest는 꽤 최근 동안 활약해온 car와 cdr 함수의 이름을 바꾸어 리스프에 추가된 것입니다. 초기 리스프 구현체 중 하나에서 car와 cdr의 이름이 유례됬고, 이 이름에 기반한 구현체가 이미 오래전에 바뀌었음에도 불구하고 수십년간 고수되었습니다","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » FIRST 와 REST","id":"25","title":"FIRST 와 REST"},"26":{"body":"cons list first rest car cdr nil , ( ) T","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 04. 조립과 분해 » 짚고 넘어가기","id":"26","title":"짚고 넘어가기"},"27":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 레슨 05. 네이밍과 아이덴티티(Naming and Identity)","id":"27","title":"레슨 05. 네이밍과 아이덴티티(Naming and Identity)"},"28":{"body":"심볼은 단지 이름입니다. 심볼은 심볼 그 자체 입니다. 이는 리스프에서 특정 종류의 프로그램을 작성하는 것을 쉽게 만들어 줍니다. 예를들어, 프로그램으로 가족 관계를 나타내고자 한다면, 이와 같은 관계를 나타내는 데이터베이스를 만들 수 있습니다: (father John Barry)\n(son John Harold)\n(father John Susan)\n(mother Edith Barry)\n(mother Edith Susan) ... 각각의 관계를 리스트로 표현했습니다. 예로 (father John Barry)는 John은 Barry의 아버지라는 것을 의미합니다. 데이터베이스 속 리스트의 모든 요소는 심볼입니다. 예를들어 Harold는 Barry의 할아버지라는 것을 판별하기 위해 리스프 프로그램은 이 데이터베이스안에 있는 심볼들을 비교할 수 있습니다. (심볼이 없는)다른 언어 언어에서 이와 같은 프로그램을 작성하고자 한다면, 가족 구성원의 이름과 관계를 어떻게 표현해야할지 결정해야만 해야하며, 거기에 필요한 모든 동작들을 수행하는 코드를 작성해야만 할 것입니다(읽고, 출력하고, 비교하고, 할당하고, 기타등등). :TODO(pyoung) This is all built into Lisp, because symbols are a data type distinct from the objects they might be used to name.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼은 단지 이름","id":"28","title":"심볼은 단지 이름"},"29":{"body":"프로그램에서 이름이 같은 심볼은 항상 동일합니다. eq 테스트로 심볼을 비교할 수 있습니다: (eq 'a 'a)\n;;=> T (eq 'david 'a)\n;;=> NIL (eq 'David 'DAVID)\n;;=> T (setq zzz 'sleeper)\n;;=> SLEEPER (eq zzz 'sleeper)\n;;=> T 심볼 이름으로 대문자나 소문자를 사용하는 것은 문제가 되지 않습니다. 내부적으로, 리스프는 심볼 이름에 있는 모든 알파벳 문자들을 보통은 대문자로 바꾸며, 리스프 리더 속에 있는 플레그를 설정하여 이 기본 설정을 제어할 수 있습니다. 레슨 10 [p 65](또한 31장 [p 247]참조)에서 패키지에 대해 배운다면, 스펠은 같지만 동일하지는 않는 심볼 이름을 만들 수 있습니다. 지금 알아야 할것은 : 로 기술된 심볼은 특별하게 취급한다 라는 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼은 항상 유니크하다.","id":"29","title":"심볼은 항상 유니크하다."},"3":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 레슨 01. 필수 - 신택스(Essential Syntax)","id":"3","title":"레슨 01. 필수 - 신택스(Essential Syntax)"},"30":{"body":"심볼의 자기 자신을 표현하는 능력 역시 유용하지만, 더욱 일반적으로 사용되는 곳은 값의 이름을 붙일 때입니다. 이는 다른 프로그래밍 언어에서 변수와 함수 이름의 역활을 맡습니다. 리스프 심볼은 값의 이름이나, 함수의 이름을 지을때 사용됩니다. 리스프에서 특이한 점 중 하나는 심볼은 함수랑 변수의 값을 동시에 지닐 수 있다 라는 점 입니다: (setq first 'number-one)\n;;=> NUMBER-ONE (first (list 3 2 1))\n;;=> 3 first\n;;=> NUMBER-ONE 첫번째와 마지막 경우에서의 first는 변수 이며 , 두번째인 경우는 리스프에 의해 미리 정의된 함수 라는 점을 주의깊게 보시길 바랍니다. 리스프는 심볼이 보이는 곳에 기반하여 이 값이 무엇인지 결정합니다. 평가 규칙에 따라 값을 요청받으면, 리스프는 심볼의 변수 값을 찾습니다. 함수를 요청받으면, 리스프는 심볼의 함수 값을 찾습니다. 심볼은 변수나 함수의 값 외에 다른 값을 가질 수 있습니다. 심볼은 문서, 프로퍼티 리스트(property list) 혹은 출력에 대한 이름 값도 가질 수 있습니다. 심볼의 문서는 심볼의 설명을 위한 텍스트입니다. documentation 폼을 이용하거나 심볼의 값을 정의하는 몇몇 폼에서 문서를 만들 수 있습니다. 심볼은 다양한 의미를 가질 수 있으므로 함수 및 변수와 같이 여러 가지 의미 각각에 대한 문서를 만들 수 있습니다. 프로퍼티 리스트는 엔트리(entry)당 하나의 키를 지닌 자그마한 데이터 베이스와 같습니다. 레슨 10 [p 65]에서 이러한 심볼의 사용법을 살펴볼 것입니다. 출력 이름은 리스프에서 심볼을 출력하기 위해 사용하는 것입니다. 일반적으로 이 이름을 변경하지 않는게 좋습니다; 변경한다면, 나중에 리스프가 심볼을 읽고 다른 이름으로 출력하기에 혹여 다시 리스프가 그 이름을 읽을때 원래 심볼값과 다른 의미를 지녀 혼란을 야기할 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 심볼로 값에 이름 붙일 수 있다.","id":"30","title":"심볼로 값에 이름 붙일 수 있다."},"31":{"body":"값은 하나 이상의 이름을 가질 수 있습니다. 즉, 하나 이상의 심볼이 값을 공유할 수 있다는 것입니다. 다른 언어에서 이러한 방식으로 동작하는 것으로는 포인터가 있습니다. 리스프는 프로그래머에게 포인터를 노출하지 않지만, 공유 오브젝트는 있습니다. eq 테스트로 오브젝트가 서로 같은지 확인할 수 있습니다. 다음에 나오는 것을 살펴보시기 바랍니다: (setq L1 (list 'a 'b 'c))\n;;=> (A B C) (setq L2 L1)\n;;=> (A B C) (eq L1 L2)\n;;=> T (setq L3 (list 'a 'b 'c))\n;;=> (A B C) (eq L3 L1)\n;;=> NIL 여기서, 동일한 값을 L1과 L2라 이름지엇기에, L1과 L2는 eq합니다. 다시 말하자면 (list 'a 'b 'c) 폼에 의해 생성된 값은 L1과 L2 두개의 이름을 갖습니다. (setq L2 L1) 폼은 \"L2의 값이 L1의 값이 되도록 해라\" 라고 지시합니다. 값의 복사를 말 하는게 아니라, 값 그 자체를 지칭합니다. 따라서 L1과 L2는 동일한 값 (처음 L1에 할당된 리스트 (A B C))을 공유합니다. 또한 L3도 리스트 (A B C)를 값으로 갖지만, 이는 L1과 L2가 공유하는 것과는 다른 새로운 리스트 입니다. 비록 L3의 값이 L1과 L2의 값과 동일한 것처럼 보이지만, 다른 list 폼에 의해 생성되었기에, 이는 다른 리스트입니다. 따라서, 서로 심볼 A, B, C로 구성된 리스트이지만, 다른 리스트이기에, (eq L3 L1)는 NIL이 됩니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 값은 하나 이상의 이름을 가질 수 있다","id":"31","title":"값은 하나 이상의 이름을 가질 수 있다"},"32":{"body":"eq","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 05. 네이밍과 아이덴티티 » 짚고 넘어가기","id":"32","title":"짚고 넘어가기"},"33":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 06. 바인딩 vs 할당 » 레슨 06. 바인딩 vs 할당","id":"33","title":"레슨 06. 바인딩 vs 할당"},"34":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 07. 필수 - 함수 정의 » 레슨 07. 필수 - 함수 정의","id":"34","title":"레슨 07. 필수 - 함수 정의"},"35":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 08. 필수 - 매크로 정의 » 레슨 08. 필수 - 매크로 정의","id":"35","title":"레슨 08. 필수 - 매크로 정의"},"36":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 09. 필수 - 다중 값 » 레슨 09. 필수 - 다중 값","id":"36","title":"레슨 09. 필수 - 다중 값"},"37":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 10. 프리뷰 - 다른 데이터 타입 » 레슨 10. 프리뷰 - 다른 데이터 타입","id":"37","title":"레슨 10. 프리뷰 - 다른 데이터 타입"},"38":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 11. 필수 - 입력과 출력 » 레슨 11. 필수 - 입력과 출력","id":"38","title":"레슨 11. 필수 - 입력과 출력"},"39":{"body":"","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 12. 필수 - 리더 매크로 » 레슨 12. 필수 - 리더 매크로","id":"39","title":"레슨 12. 필수 - 리더 매크로"},"4":{"body":"리스프에 대해 우선적으로 알아할 것입니다: 괄호로 둘러싸인 모든것은 리스트(list)이다. 여기 예가 있습니다: (1 2 3 4 5) (a b c) (cat 77 dog 89) 앞서 말씀드린대로, 괄호로 둘러싸인 것은 리스트입니다. 이와 같은 말을 들으면, 아마 다음과 같은 의문이 생길 것입니다: 괄호로 아무것도 없는것을 둘러싼다면? 괄호로 다른 리스트를 둘러싼다면? 두 경우 모두 대답은 같습니다. 여전히 리스트입니다. 따라서 다음 나오는 것들 또한 리스트입니다: () (()) ((())) ((a b c)) ((1 2) 3 4) (mouse (monitor 512 342) (keyboard US)) (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) 리스트가 아닌 유일한 경우는 다음 4개의 예제에 나온 것처럼, 좌/우측 괄호가 짝을 이루지 못하는 경우입니다: (a b c( ; (: 2개 // ): 0개 ((25 g) 34 ; (: 2개 // ): 1개 ((()) ; (: 3개 // ): 2개 (())) ; (: 2개 // ): 3개 크게 신경쓸 부분은 아닙니다: 리스프는 괄호가 일치하지 않으면 않다고 여러분에게 알려 줄 것입니다. 또, 리스프 프로그램을 작성하기 위해 사용하는 편집기 대부분은 자동적으로 일치하는 괄호를 찾는 방법을 제공해 줄 것입니다. 27장에서 편집기에 대해 살펴볼 수 있습니다 [p 227]. 리스프에서 리스트는 여러가지가 될 수 있습니다. 가장 일반적인 경우, 리스트는 프로그램이나 데이터가 될 수 있습니다. 그리고 리스트가 스스로 다른 리스트를 만들 수 있기에, 여러분은 복잡한 데이터의 조합과 여러 단계의 리스트 구조로 된 프로그램을 가질 수 있습니다. 이를 잘 이해하는 자에게는 리스프는 엄청난 유연성을 부여해 줄 것이며, 그렇지 않은 자에게는 많은 혼란을 줄 것입니다. 이번장을 계속해서 나아가면서 이러한 혼란을 없애도록 노력해 봅시다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 리스트는 괄호로 감싸져있다.","id":"4","title":"리스트는 괄호로 감싸져있다."},"5":{"body":"이제 여러분은 리스트를 구분할 수 있으며, 괄호 사이에 나타나지만 (리스트가 아닌)단어나 숫자인 것들에 대한 것들을 뭐라고 부르는지 알고 싶을 것입니다. 이러한 것들을 아톰(atom)이라 부릅니다. 그러므로, 다음 단어와 숫자들은 모두 아톰입니다: 1 25 342 mouse factorial x 리스프에서는 거의 모든 문자를 이용하여 아톰을 구성할 수 있습니다. 이제부터 문자, 숫자, 구두점 문자들이 있는데 이들 앞뒤에 공백(줄의 시작 또는 끝 포함) 또는 괄호가 있으면 이를 모두 아톰이라고 부르겠습니다. 다음 나오는 것들은 모두 아톰입니다: - * @comport funny%stuff 9^ case-2 만일 다른 프로그래밍에 대한 경험이 있다면, 한가지 주의해야 할 점은 보통 다른 언어에서 연산자로 예약된 문자들이 리스프에서 아톰으로써 쓰였다면 별다른 의미를 갖지 않는다는 것입니다. 예를들어, case-2는 수학적(arithmetic) 표현식 뺄샘이 들어간게 아니라 여기서는 그져 아톰 그 자체입니다. 공백이나 괄호로 무엇이 아톰인지 구분할 수 있으므로, 아톰과 괄호 혹은 괄호들 사이에 있는 공백을 없앨 수 있습니다. 그러므로, 다음 두 예제는 동일합니다: (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) (defun factorial(x)(if(eql x 0)1(* x(factorial(- x 1))))) 사실, 여러분은 절대로 두번째에 나타난것처럼 리스트를 작성해서는 안됩니다. 여러분은 가독성을 향상시키기 위해 리스트를 여러 라인으로 분리시키며 각 라인을 적절히 들여써야 합니다. 이 리스트는 사실 작은 프로그램이며, 다음과 같이 들여쓰면 리스퍼 프로그래머가 읽기 수월해 집니다: (defun factorial (x) (if (eql x 0) 1 (* x (factorial (- x 1))))) 지금, 여러분은 이것이 무얼 의미하는지, 이러한 종류의 들여쓰기(indentation)가 무엇인지 대해 걱정할 필요가 없습니다. 이번장을 통해, 여러분은 들여쓰기가 들어간 많은 예제를 접하게 될 것입니다. 계속해서 보여드리는 예제와 함께, 가독성을 향상시키는 들여쓰는 방법에 대해 알려드릴 것입니다. 28장 [p 230]에서 적절한 들여쓰는 법을 포함하여, 리스프의 코딩 스타일에 대해 다룰 것입니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 아톰(Atom)은 공백이나 괄호로 분리된 것입니다.","id":"5","title":"아톰(Atom)은 공백이나 괄호로 분리된 것입니다."},"6":{"body":"리스트(list) 아톰(atom)","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 01. 필수 - 신택스 » 짚고 넘어가기","id":"6","title":"짚고 넘어가기"},"7":{"body":"원문","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 레슨 02. 필수 - 평가(Essential Evaluation)","id":"7","title":"레슨 02. 필수 - 평가(Essential Evaluation)"},"8":{"body":"폼(form)은 아톰(atom) 혹은 리스트(list)가 될 수 있습니다. 중요한 것은 폼이 평가(evaluation)된다는 것입니다. 평가라는 것은 상당한 기술적 의미를 지니고 있으며, 이번 섹션에서 서서히 그 모습을 드러나게 될 것입니다. 폼이 아톰이라면 평가는 단순합니다. 리스프는 아톰을 마치 이름처럼 다루고, 값이 존재한다면 이름에 저장된 값을 얻습니다. 여러분은 아마도 왜 제가 아톰은 변수라고 직접적으로 말하지 않는지 의아할 것입니다. 명확하게 정의하지 않은 이유는 아톰은 변수이거나 상수의 값을 가질 수 있기 때문입니다. 그리고 아톰의 값은 경우에 따라 상수가 될 수 도 있습니다. 숫자는 아톰입니다(이 값은 상수입니다). 리스프는 숫자에 값을 저장 할 수 없습니다: 숫자는 자체적으로 평가됩니다. 정의가 완전히 내려지지 않은 새로운 용어를 소개합니다. 이제, 심볼을 값을 가질 수 있는 아톰이라고 여기기 바랍니다. 레슨 5[p 53]에서 심볼에 대해 더욱 자세히 살펴볼 것입니다. defconstant로 정의된 심볼은 상수 값을 지닙니다. 리스프는 변수처럼 아톰에 값을 저장한 다음, 값을 바꿀 수 없다라는 메모를 추가합니다. 패키지에 있는 키워드(keyword) 심볼은 스스로 평가됩니다. 패키지에 관한 것은 31장[p 247]에서 자세히 살펴볼 것입니다. 지금, 여러분이 알아야 할것은 (패키지 프리픽스라 불리는) : 문자로 시작하는 심볼은 키워드 심볼이라는 것입니다. 키워드 심볼은 그 자신을 값으로 갖습니다. 다양한 방식으로 심볼에서 값을 얻을 수 있습니다. 리스프는 실제로 심볼에 다양한 값을 저장합니다. 하나는 변수로서의 심볼의 값. 그리고 다른 하나는 함수로서 심볼입니다. 또 다른 것들은 해당 심볼에 대한 문서를 얻거나, 출력값으로 활용하거나, 연관리스트(associated list)처럼 속성값으로 쓰이기도 합니다. 이러한 것들에 대해 레슨 5 [p 53], 레슨 6 [p 56], 레슨 7 [p 59]에서 더욱 자세히 살펴볼 것입니다. 폼이 리스트라면, 첫번째 요소는 심볼이거나 람다(lambda)표현식이라 불리는 특별한 폼일 것입니다. (람다 표현식에 대한것은 잠시 뒤로 미루겠습니다.) 심볼은 함수의 이름을 짓습니다. 리스프에서 심볼 +, -, *, /는 일반적인 산술 연산자입니다: 덧셈, 빨셈, 곱셈, 나누기. 각 심볼은 산술 연산을 수행하는 함수와 연관되어있습니다. 따라서 리스프가 폼 (+ 2 3)을 평가하면, 이는 덧셈 함수+에 인자 2와 3을 적용시킬 것이며, 예상되듯이 결과 5를 반환할 것입니다. 함수로서 심볼 +가 인자들 앞에 있습니다. 이는 전위 표기법(prefix notation)입니다. 리스프가 리스트를 폼으로 평가하기 위해 무얼할 것인지 이해하기 위해선, 리스트의 첫번째 요소를 살펴보시기 바랍니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 폼(form)은 평가될 수 있습니다.","id":"8","title":"폼(form)은 평가될 수 있습니다."},"9":{"body":"주어진 리스트를 평가할때 리스프는 폼을 함수 호출로써 다룹니다. 지금부터 우리는 수 많은 리스프의 평가를 보게 될 것이며, 리스프의 입력과 이의 반응을 구분하기 위해 다음과 같이 시각적 표시를 할 것입니다: (어떠한 리스프 입력)\n;;=> 리스프 평가의 결과 ;;>> 리스프 출력\n;;<< 리스프에 입력\n;;>| 리스프의 에러 메시지 예: (+ 4 9)\n;;=> 13 (- 5 7)\n;;=> -2 (* 3 9)\n;;=> 27 (/ 15.0 2)\n;;=> 7.5 위 경우에서 보듯이, 평가된 폼은 리스트입니다. 각각의 첫번째 요소는 심볼이자 함수의 이름입니다. 남아있는 요소는 해당 함수의 인자입니다. 여기서, 인자는 모두 숫자이며, 숫자는 스스로 평가된다는 것을 알 수 있습니다. 여기 몇몇 예제가 더 있습니다: (atom 123)\n;;=> T (numberp 123)\n;;=> T (atom :foo)\n;;=> T (numberp :foo)\n;;=> NIL atom과 numberp는 술어(predicate)입니다. 술어는 참 혹은 거짓을 반환합니다. 리스프에서 NIL은 거짓을 나타냅니다. NIL이 아닌 것은 모두 참입니다. 딱히 의미있는 값이 아니면 술어는 관습적으로 참을 의미하는 T를 반환하게 되어 있습니다. atom은 인자가 리스프의 아톰이라면 T를 반환합니다. numberp는 인자가 숫자이면 T를 반환합니다. 위의 폼들을 평가하기 위해, 리스프는 우선 (좌측에서 우측으로) 인자를 평가하고, 그런 다음 첫번째 요소를 평가하여 함수를 얻은 후, 앞선 인자들을 함수에 적용합니다. 몇몇 예외가 있지만, 그것들은 이번 레슨의 끝부분에서 배울 것입니다. 리스프는 리스트 폼을 평가하기 위해 다음과 같은 작업을 수행합니다: 나머지 요소들을 좌측에서부터 우측으로 인자들을 평가한다. 첫번째 요소에서 함수를 얻는다. 함수에 인자들을 적용한다. 아톰 또한 리스프의 폼이라는 것을 명심하시기 바랍니다. 주어진 아톰이 평가되면, 리스프는 아톰이 지닌 값을 반환합니다: 17.95\n;;=> 17.95 :A-KEYWORD\n;;=> :A-KEYWORD *FEATURES*\n;;=> (:ANSI-CL :CLOS :COMMON-LISP) \"Hello, world!\"\n;;=> \"Hello, world!\" WHAT-IS-THIS?\n;;>| Error: Unbound variable 숫자와 키워드는 스스로 평가됩니다. 문자열도 그러합니다. *FEATURES*는 리스프에 의해 미리 정의된 변수입니다. 여러분의 시스템은 아마도 다른 값을 반환할 것입니다. 심볼 WHAT-IS-THIS?는 리스프에 의해 미리 정의되지 않아 값을 지니지 않으며, 이에 값을 얻을 수 없습니다. 시스템은 값 대신에 에러메시지로 응답할 것입니다. 에러 메시지 앞에 ;;>|를 붙여 표시하였습니다. 시스템에 따라 다른 에러 메시지가 출력될 수 있습니다.","breadcrumbs":"03. 12개의 레슨으로 배우는 필수 리스프 » 레슨 02. 필수 - 평가 » 함수는 인자를 받을 수 있습니다.","id":"9","title":"함수는 인자를 받을 수 있습니다."}},"length":40,"save":true},"fields":["title","body","breadcrumbs"],"index":{"body":{"root":{"0":{")":{"1":{"df":1,"docs":{"5":{"tf":1.0}}},"df":0,"docs":{}},"1":{"df":1,"docs":{"3":{"tf":1.0}}},"2":{"df":1,"docs":{"7":{"tf":1.0}}},"3":{"df":2,"docs":{"1":{"tf":1.0},"16":{"tf":1.0}}},"4":{"df":1,"docs":{"22":{"tf":1.0}}},"5":{"df":1,"docs":{"27":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.0}}},"7":{"df":1,"docs":{"34":{"tf":1.0}}},"8":{"df":1,"docs":{"35":{"tf":1.0}}},"9":{"df":1,"docs":{"36":{"tf":1.0}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951}}},"1":{"0":{"df":3,"docs":{"29":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.0}}},"1":{"df":1,"docs":{"38":{"tf":1.0}}},"2":{".":{"0":{"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":3,"docs":{"1":{"tf":1.0},"20":{"tf":1.0},"39":{"tf":1.0}}},"3":{"df":3,"docs":{"19":{"tf":1.0},"25":{"tf":1.0},"9":{"tf":1.0}}},"5":{".":{"0":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}},"7":{".":{"9":{"5":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"8":{".":{"3":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"8":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}},"9":{"5":{"4":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"10":{"tf":1.4142135623730951},"17":{"tf":2.449489742783178},"19":{"tf":2.23606797749979},"23":{"tf":3.4641016151377544},"24":{"tf":2.449489742783178},"25":{"tf":1.7320508075688772},"30":{"tf":1.0},"4":{"tf":2.23606797749979},"5":{"tf":2.449489742783178}}},"2":{"0":{"df":0,"docs":{},"장":{"df":0,"docs":{},"에":{"df":0,"docs":{},"서":{"df":0,"docs":{},"는":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"2":{"7":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"3":{"0":{"df":1,"docs":{"5":{"tf":1.0}}},"8":{"df":1,"docs":{"10":{"tf":1.0}}},"df":1,"docs":{"20":{"tf":2.0}}},"4":{"7":{"df":2,"docs":{"29":{"tf":1.0},"8":{"tf":1.0}}},"df":0,"docs":{}},"5":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"7":{"df":2,"docs":{"4":{"tf":1.0},"9":{"tf":1.0}}},"8":{"df":1,"docs":{"5":{"tf":1.0}}},"9":{"df":1,"docs":{"10":{"tf":1.0}}},"df":13,"docs":{"10":{"tf":1.4142135623730951},"14":{"tf":1.0},"17":{"tf":3.1622776601683795},"18":{"tf":1.0},"19":{"tf":1.7320508075688772},"23":{"tf":2.8284271247461903},"24":{"tf":2.449489742783178},"25":{"tf":2.0},"30":{"tf":1.0},"4":{"tf":2.449489742783178},"5":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}},"df":0,"docs":{}}},"3":{"1":{"df":1,"docs":{"29":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}},"2":{"df":1,"docs":{"19":{"tf":1.0}}},"4":{"2":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"df":1,"docs":{"4":{"tf":1.0}}},"5":{".":{"9":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.0}}},"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":10,"docs":{"10":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":2.0},"24":{"tf":2.0},"25":{"tf":2.23606797749979},"30":{"tf":1.4142135623730951},"4":{"tf":2.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"4":{"2":{"df":1,"docs":{"12":{"tf":1.0}}},"df":6,"docs":{"1":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.4142135623730951},"25":{"tf":2.449489742783178},"4":{"tf":1.7320508075688772},"9":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}},"5":{"0":{"df":1,"docs":{"17":{"tf":1.0}}},"1":{"2":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"2":{".":{"8":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"8":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"8":{"tf":1.0}}},"7":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"8":{"tf":1.0}}},"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":1.4142135623730951},"25":{"tf":2.23606797749979},"4":{"tf":1.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"6":{"1":{"df":1,"docs":{"14":{"tf":1.0}}},"3":{"df":1,"docs":{"10":{"tf":1.0}}},"5":{"df":2,"docs":{"29":{"tf":1.0},"30":{"tf":1.0}}},"df":1,"docs":{"8":{"tf":1.0}}},"7":{".":{"5":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"2":{"df":1,"docs":{"10":{"tf":1.0}}},"7":{"df":2,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":1.0}}},"df":2,"docs":{"8":{"tf":1.0},"9":{"tf":1.0}}},"8":{"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"25":{"tf":1.0}}},"5":{"df":1,"docs":{"18":{"tf":1.0}}},"9":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}}},"df":2,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772}}},"9":{"7":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"9":{"df":2,"docs":{"17":{"tf":2.0},"19":{"tf":1.0}}},"df":2,"docs":{"5":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"5":{"tf":1.4142135623730951},"6":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":2.0}}}}}},"b":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}}},"df":6,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"20":{"tf":3.0},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}}},"y":{"df":1,"docs":{"0":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"5":{"tf":1.4142135623730951}}}},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"d":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"9":{"tf":1.0}},"o":{"df":1,"docs":{"9":{"tf":1.0}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"1":{"tf":1.0},"2":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"n":{"d":{"df":2,"docs":{"19":{"tf":3.1622776601683795},"21":{"tf":1.0}}},"df":3,"docs":{"23":{"tf":4.0},"24":{"tf":1.0},"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"28":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":2.449489742783178},"17":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"y":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":1,"docs":{"19":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"f":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.7320508075688772}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}},"h":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"q":{"df":3,"docs":{"29":{"tf":2.23606797749979},"31":{"tf":2.23606797749979},"32":{"tf":1.0}},"l":{"df":3,"docs":{"19":{"tf":2.8284271247461903},"4":{"tf":1.0},"5":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.0},"7":{"tf":1.0}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"7":{"tf":1.0},"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"x":{")":{"(":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":2.23606797749979}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.7320508075688772}}}}}}},"df":1,"docs":{"18":{"tf":2.449489742783178}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"19":{"tf":1.0},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":2.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"y":{"%":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}},"g":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":3,"docs":{"10":{"tf":1.4142135623730951},"24":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"i":{"df":1,"docs":{"10":{"tf":1.4142135623730951}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{":":{"/":{"/":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"8":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}}}},"l":{"1":{"df":1,"docs":{"31":{"tf":3.7416573867739413}}},"2":{"df":1,"docs":{"31":{"tf":3.1622776601683795}}},"3":{"df":1,"docs":{"31":{"tf":2.23606797749979}}},"a":{"df":0,"docs":{},"m":{"b":{"d":{"a":{"df":1,"docs":{"8":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":2.23606797749979}},"s":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":5,"docs":{"0":{"tf":2.0},"1":{"tf":1.0},"2":{"tf":1.0},"28":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":8,"docs":{"24":{"tf":2.6457513110645907},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":2.0},"4":{"tf":1.0},"6":{"tf":1.0},"8":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"27":{"tf":1.0},"28":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"15":{"tf":1.0},"19":{"tf":1.4142135623730951},"23":{"tf":3.1622776601683795},"26":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.4142135623730951},"9":{"tf":1.7320508075688772}}}},"o":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"19":{"tf":2.0},"30":{"tf":1.7320508075688772}},"p":{"df":2,"docs":{"15":{"tf":1.0},"9":{"tf":2.0}}}}}},"df":0,"docs":{}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.7320508075688772}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}},"p":{"df":11,"docs":{"10":{"tf":1.7320508075688772},"12":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":2.0},"20":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"8":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}}}},"q":{"df":1,"docs":{"18":{"tf":2.0}},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":4,"docs":{"20":{"tf":2.449489742783178},"21":{"tf":1.0},"23":{"tf":1.0},"25":{"tf":1.0}},"e":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"r":{"df":1,"docs":{"18":{"tf":2.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"25":{"tf":4.0},"26":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"17":{"tf":1.7320508075688772}},"q":{"df":8,"docs":{"17":{"tf":3.7416573867739413},"18":{"tf":2.449489742783178},"20":{"tf":2.449489742783178},"21":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":2.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":1.7320508075688772}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":2.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"28":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"9":{"tf":2.449489742783178}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"o":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":2,"docs":{"17":{"tf":1.0},"28":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"28":{"tf":1.0}}}}}},"u":{"df":1,"docs":{"18":{"tf":1.7320508075688772}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"28":{"tf":1.0}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"10":{"tf":2.23606797749979},"15":{"tf":1.0}}}},"r":{"df":1,"docs":{"17":{"tf":4.0}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"17":{"tf":2.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"33":{"tf":1.0}}}},"w":{"df":1,"docs":{"18":{"tf":2.6457513110645907}},"e":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"x":{"(":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":3,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":2.0},"5":{"tf":3.3166247903554}}},"y":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"z":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}}}},"breadcrumbs":{"root":{"0":{")":{"1":{"df":1,"docs":{"5":{"tf":1.0}}},"df":0,"docs":{}},"1":{"df":4,"docs":{"3":{"tf":1.7320508075688772},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0}}},"2":{"df":9,"docs":{"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"7":{"tf":1.7320508075688772},"8":{"tf":1.0},"9":{"tf":1.0}}},"3":{"df":39,"docs":{"1":{"tf":1.7320508075688772},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":2.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.4142135623730951},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"21":{"tf":1.4142135623730951},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}},"4":{"df":5,"docs":{"22":{"tf":1.7320508075688772},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0}}},"5":{"df":6,"docs":{"27":{"tf":1.7320508075688772},"28":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.7320508075688772}}},"7":{"df":1,"docs":{"34":{"tf":1.7320508075688772}}},"8":{"df":1,"docs":{"35":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"36":{"tf":1.7320508075688772}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951}}},"1":{"0":{"df":3,"docs":{"29":{"tf":1.0},"30":{"tf":1.0},"37":{"tf":1.7320508075688772}}},"1":{"df":1,"docs":{"38":{"tf":1.7320508075688772}}},"2":{".":{"0":{"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":39,"docs":{"1":{"tf":1.7320508075688772},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"21":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"24":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"27":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":2.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}},"3":{"df":3,"docs":{"19":{"tf":1.0},"25":{"tf":1.0},"9":{"tf":1.0}}},"5":{".":{"0":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":1,"docs":{"25":{"tf":1.0}}},"df":0,"docs":{}},"7":{".":{"9":{"5":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"df":1,"docs":{"19":{"tf":1.0}}},"df":0,"docs":{},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{}}},"8":{".":{"3":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"8":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}},"9":{"5":{"4":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"10":{"tf":1.4142135623730951},"17":{"tf":2.449489742783178},"19":{"tf":2.23606797749979},"23":{"tf":3.4641016151377544},"24":{"tf":2.449489742783178},"25":{"tf":1.7320508075688772},"30":{"tf":1.0},"4":{"tf":2.23606797749979},"5":{"tf":2.449489742783178}}},"2":{"0":{"df":0,"docs":{},"장":{"df":0,"docs":{},"에":{"df":0,"docs":{},"서":{"df":0,"docs":{},"는":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"2":{"7":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"3":{"0":{"df":1,"docs":{"5":{"tf":1.0}}},"8":{"df":1,"docs":{"10":{"tf":1.0}}},"df":1,"docs":{"20":{"tf":2.0}}},"4":{"7":{"df":2,"docs":{"29":{"tf":1.0},"8":{"tf":1.0}}},"df":0,"docs":{}},"5":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"7":{"df":2,"docs":{"4":{"tf":1.0},"9":{"tf":1.0}}},"8":{"df":1,"docs":{"5":{"tf":1.0}}},"9":{"df":1,"docs":{"10":{"tf":1.0}}},"df":13,"docs":{"10":{"tf":1.4142135623730951},"14":{"tf":1.0},"17":{"tf":3.1622776601683795},"18":{"tf":1.0},"19":{"tf":1.7320508075688772},"23":{"tf":2.8284271247461903},"24":{"tf":2.449489742783178},"25":{"tf":2.0},"30":{"tf":1.0},"4":{"tf":2.449489742783178},"5":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}},"n":{"d":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}},"df":0,"docs":{}}},"3":{"1":{"df":1,"docs":{"29":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}},"2":{"df":1,"docs":{"19":{"tf":1.0}}},"4":{"2":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}},"df":1,"docs":{"4":{"tf":1.0}}},"5":{".":{"9":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.0}}},"7":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":10,"docs":{"10":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":2.0},"24":{"tf":2.0},"25":{"tf":2.23606797749979},"30":{"tf":1.4142135623730951},"4":{"tf":2.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"4":{"2":{"df":1,"docs":{"12":{"tf":1.0}}},"df":6,"docs":{"1":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.4142135623730951},"25":{"tf":2.449489742783178},"4":{"tf":1.7320508075688772},"9":{"tf":1.0}},"장":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"25":{"tf":1.0}}}},"df":0,"docs":{}}},"5":{"0":{"df":1,"docs":{"17":{"tf":1.0}}},"1":{"2":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}},"2":{".":{"8":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"3":{"df":1,"docs":{"8":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"8":{"tf":1.0}}},"7":{"df":1,"docs":{"17":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"8":{"tf":1.0}}},"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":1.4142135623730951},"25":{"tf":2.23606797749979},"4":{"tf":1.0},"8":{"tf":1.4142135623730951},"9":{"tf":1.0}}},"6":{"1":{"df":1,"docs":{"14":{"tf":1.0}}},"3":{"df":1,"docs":{"10":{"tf":1.0}}},"5":{"df":2,"docs":{"29":{"tf":1.0},"30":{"tf":1.0}}},"df":1,"docs":{"8":{"tf":1.0}}},"7":{".":{"5":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}},"2":{"df":1,"docs":{"10":{"tf":1.0}}},"7":{"df":2,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":1.0}}},"df":2,"docs":{"8":{"tf":1.0},"9":{"tf":1.0}}},"8":{"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"25":{"tf":1.0}}},"5":{"df":1,"docs":{"18":{"tf":1.0}}},"9":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}}},"df":2,"docs":{"17":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772}}},"9":{"7":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"9":{"df":2,"docs":{"17":{"tf":2.0},"19":{"tf":1.0}}},"df":2,"docs":{"5":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"z":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"9":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"8":{"tf":1.0}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"5":{"tf":1.7320508075688772},"6":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":2.0}}}}}},"b":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}}},"df":6,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"20":{"tf":3.0},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}}},"y":{"df":1,"docs":{"0":{"tf":1.0}}}}},"c":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"5":{"tf":1.4142135623730951}}}},"t":{"df":1,"docs":{"4":{"tf":1.0}}}},"d":{"df":0,"docs":{},"r":{"df":2,"docs":{"25":{"tf":1.4142135623730951},"26":{"tf":1.0}}}},"df":5,"docs":{"18":{"tf":2.0},"19":{"tf":1.7320508075688772},"24":{"tf":1.4142135623730951},"31":{"tf":3.0},"4":{"tf":1.7320508075688772}},"h":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"9":{"tf":1.0}},"o":{"df":1,"docs":{"9":{"tf":1.0}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"1":{"tf":1.0},"2":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"n":{"d":{"df":2,"docs":{"19":{"tf":3.3166247903554},"21":{"tf":1.0}}},"df":3,"docs":{"23":{"tf":4.123105625617661},"24":{"tf":1.0},"26":{"tf":1.0}}},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"28":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"0":{"tf":2.449489742783178},"17":{"tf":1.7320508075688772},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"y":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":1,"docs":{"19":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"f":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"8":{"tf":1.0}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.7320508075688772}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}},"h":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}},"q":{"df":3,"docs":{"29":{"tf":2.23606797749979},"31":{"tf":2.23606797749979},"32":{"tf":1.0}},"l":{"df":3,"docs":{"19":{"tf":2.8284271247461903},"4":{"tf":1.0},"5":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.4142135623730951},"7":{"tf":1.4142135623730951}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"7":{"tf":1.4142135623730951},"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"(":{"df":0,"docs":{},"x":{")":{"(":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"(":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":2,"docs":{"4":{"tf":1.4142135623730951},"5":{"tf":2.23606797749979}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.7320508075688772}}}}}}},"df":1,"docs":{"18":{"tf":2.449489742783178}},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"19":{"tf":1.0},"25":{"tf":3.0},"26":{"tf":1.0},"30":{"tf":2.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"m":{"df":5,"docs":{"15":{"tf":1.0},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"8":{"tf":1.7320508075688772}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"y":{"%":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":1,"docs":{"5":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}},"g":{"df":2,"docs":{"18":{"tf":2.0},"4":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":3,"docs":{"10":{"tf":1.4142135623730951},"24":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}},"i":{"df":1,"docs":{"10":{"tf":1.4142135623730951}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{":":{"/":{"/":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"d":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":2.23606797749979}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"4":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"8":{"tf":1.0},"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"df":0,"docs":{}}}}},"l":{"1":{"df":1,"docs":{"31":{"tf":3.7416573867739413}}},"2":{"df":1,"docs":{"31":{"tf":3.1622776601683795}}},"3":{"df":1,"docs":{"31":{"tf":2.23606797749979}}},"a":{"df":0,"docs":{},"m":{"b":{"d":{"a":{"df":1,"docs":{"8":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":2.23606797749979}},"s":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"1":{"tf":1.0},"2":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"'":{"df":1,"docs":{"0":{"tf":1.0}}},"df":5,"docs":{"0":{"tf":2.0},"1":{"tf":1.0},"2":{"tf":1.0},"28":{"tf":1.0},"9":{"tf":1.0}}},"t":{"df":8,"docs":{"24":{"tf":2.8284271247461903},"25":{"tf":2.8284271247461903},"26":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":2.0},"4":{"tf":1.0},"6":{"tf":1.0},"8":{"tf":1.4142135623730951}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"4":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"4":{"tf":1.0},"5":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"17":{"tf":1.4142135623730951},"27":{"tf":1.4142135623730951},"28":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"15":{"tf":1.0},"19":{"tf":1.4142135623730951},"23":{"tf":3.1622776601683795},"26":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.4142135623730951},"9":{"tf":1.7320508075688772}}}},"o":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"19":{"tf":2.0},"30":{"tf":1.7320508075688772}},"p":{"df":2,"docs":{"15":{"tf":1.0},"9":{"tf":2.0}}}}}},"df":0,"docs":{}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"28":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"30":{"tf":1.7320508075688772}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}},"p":{"df":11,"docs":{"10":{"tf":1.7320508075688772},"12":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":2.0},"20":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"8":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"9":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"x":{"df":2,"docs":{"15":{"tf":1.0},"8":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"30":{"tf":1.0}}}}}}}}}},"q":{"df":1,"docs":{"18":{"tf":2.0}},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":4,"docs":{"20":{"tf":2.6457513110645907},"21":{"tf":1.0},"23":{"tf":1.0},"25":{"tf":1.0}},"e":{"[":{"df":0,"docs":{},"p":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"r":{"df":1,"docs":{"18":{"tf":2.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"25":{"tf":4.123105625617661},"26":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"17":{"tf":1.7320508075688772}},"q":{"df":8,"docs":{"17":{"tf":3.872983346207417},"18":{"tf":2.449489742783178},"20":{"tf":2.449489742783178},"21":{"tf":1.0},"25":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":2.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":1.7320508075688772}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"19":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"0":{"tf":2.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"0":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"28":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"y":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"28":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"t":{"df":8,"docs":{"15":{"tf":1.0},"18":{"tf":1.4142135623730951},"19":{"tf":1.7320508075688772},"23":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"9":{"tf":2.449489742783178}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"o":{"(":{"df":0,"docs":{},"p":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":2,"docs":{"17":{"tf":1.0},"28":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"28":{"tf":1.0}}}}}},"u":{"df":1,"docs":{"18":{"tf":1.7320508075688772}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"19":{"tf":1.0}}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"28":{"tf":1.0}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":2,"docs":{"10":{"tf":2.23606797749979},"15":{"tf":1.0}}}},"r":{"df":1,"docs":{"17":{"tf":4.0}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"17":{"tf":2.0},"18":{"tf":1.7320508075688772},"9":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.4142135623730951}}}}}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":1,"docs":{"33":{"tf":1.7320508075688772}}}},"w":{"df":1,"docs":{"18":{"tf":2.6457513110645907}},"e":{"b":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"0":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"9":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"x":{"(":{"df":0,"docs":{},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"5":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":3,"docs":{"18":{"tf":1.7320508075688772},"4":{"tf":2.0},"5":{"tf":3.3166247903554}}},"y":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"17":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"z":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}}}},"title":{"root":{"0":{"1":{"df":1,"docs":{"3":{"tf":1.0}}},"2":{"df":1,"docs":{"7":{"tf":1.0}}},"3":{"df":2,"docs":{"1":{"tf":1.0},"16":{"tf":1.0}}},"4":{"df":1,"docs":{"22":{"tf":1.0}}},"5":{"df":1,"docs":{"27":{"tf":1.0}}},"6":{"df":1,"docs":{"33":{"tf":1.0}}},"7":{"df":1,"docs":{"34":{"tf":1.0}}},"8":{"df":1,"docs":{"35":{"tf":1.0}}},"9":{"df":1,"docs":{"36":{"tf":1.0}}},"df":0,"docs":{}},"1":{"0":{"df":1,"docs":{"37":{"tf":1.0}}},"1":{"df":1,"docs":{"38":{"tf":1.0}}},"2":{"df":2,"docs":{"1":{"tf":1.0},"39":{"tf":1.0}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"5":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"19":{"tf":1.0}}},"df":1,"docs":{"23":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"3":{"tf":1.0},"7":{"tf":1.0}}}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":1,"docs":{"7":{"tf":1.0}}}}},"df":0,"docs":{}}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"8":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"27":{"tf":1.0}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"24":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"27":{"tf":1.0}}}}},"df":0,"docs":{}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"25":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"q":{"df":1,"docs":{"17":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"3":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"df":0,"docs":{},"s":{"df":1,"docs":{"33":{"tf":1.0}}}}}}},"lang":"English","pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5"},"results_options":{"limit_results":30,"teaser_word_count":30},"search_options":{"bool":"OR","expand":true,"fields":{"body":{"boost":1},"breadcrumbs":{"boost":1},"title":{"boost":2}}}} \ No newline at end of file