SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Programming Lisp
     Clojure
  2   :




               :
           :   (   )
(   )




:
.


              .


(   ())           .
(Reader)
-
                            .

           (Reader Macro)
-
                                .
-                                   .
#(body %)       (fn [params*] body)

                             ;

  deref         @form        (deref form)

  meta           ^form       (meta form)          meda data

meat data           #^metadata form

                 ‘form       (quote form)         form

            #”foo” => a java.util.regex.Pattern

                            `x

                            ~

                           ~@

var-quote            #’x         (var x)
(boolean) / nil          true, false

(character)                  a

   (keyword)              :tag, :doc

  (map)            {:name “Bill”, :age 42}

 (number)                   1, 4.2

   (string)                “hello”

  (symbol)        user/foo, java.lang.String
(symbol)

        .
-
-   (          )
-
-       : /(   ), .(       )
-                  (ref)



-                      .
(number)

-                                           .
-                                        BigDecimal(   M), BigInteger
             .


- BigDecimal                                                .
-                                                                       .


-         : +, -, /, *, >, >=, <, =
-             : quot(          ), rem(     )


-   42 => 42
-   [1 2 3] => [1 2 3]
-   (/ 22 7) => 22/7
-   (/ 22.0 7) => 3.142857142857143
-   (+) => 0
-   (+ 1 (/ 0.00001M 1000000000000000000) ) => 1.00000000000000000000001M
(boolean) / nil
                         .


- ture, 0, () =
- false, nil =


- nil    false       .
- nil/false                  (    list = ()/0 = zero)   true        .


-           :                                    .
                                 (?)         .
                                                             ture       .


-   (true? true) => true
-   (false? “foo”) => false
-   (zero? 0.0) => true
-   (nil? nil) => true
-   (if () “In Clojure” “in Common Lisp”) => “In Clojlure”
-   (if 0 “Zero” “NonZero”) => “Zero”
(character)
              .
-         ,    (     )                     .
-             (backspace),    (formfeed,           ),        (newline),    (return),
     (space), (tab)                                .


-


-                                              .
- str :       ( )
          toString                                           nil            .


- (str     ) =>
- (str  space  ) =>
- (str  backspace  formfeed     newline          newline    tab  ) =>       b
   f n n t
(string)
                    .
-                           .
-                                          .


-            (“”)


-                                                                   .
- interleave :                                                                .
- apply str :                                        interleave
                        .
                                                                                         .
- take-nth                      :1             ,
                                .


- (str 1 2 nil 3) => “123”
- (apply str (take-nth 3 (apply str (interleave "Attack midnight" "The pur" "None"))))
=> “Atta”
(map)
  /                .
                                    (hash-code)
  .


-         {}           .
-{         }                   .


- def :        ,                      .
- get :                    .

  .


- (def names {“     ”“             ”}) => #‘user /names
- (get names “     ”) => “            ”
- (get names “     ”“               ”) => “        ”
(keyword)
                                                .
-                                   .



-           (:)           .



- defstruct :                           ( )              .
- struct :                          .
- struct-map :                           ( )                          .



-   (def nations {:       “         ”} => #‘user/nations
-   (nations :       )         (:          nations) => “     ”
-   (defstruct names :         ) => #‘user/names
-   (struct names “           ”) => {:        "          "}
-   (struct-map names :           “         ”) => {:        "    "}
.
-                                                                    .



- (defn                                   [       ...]   )
  :                          .
           &                                                 .
- #(      %1, %2 ... )       (fn [    ]       )
  :                      .



- (defn get “return” [user] (str “Hello, “ user)
  (get “world”) => “Hello, world”
- (defn get [hello]
  (fn [user] (str get “,” user)))
  (defn get2 (get “Hello”)
  (get2 “world” => “Hello, world”)
.



- (def         defn           var ) :    var           .(
  .)
- (var     )           #’       : var          .



- (let [              ... ]     ):
                                     .
:
                                 (name space)             .


-             =>


- (resolve      ):                                                .
- (in-ns     ):                                .
- (import ‘(                            )) :
   .                                               .
- (require ‘                ):                                                         .
- (use ‘               ):
                 .
- (use :reload ‘                  ):                          .
- (use :reload-all ‘                    ):                                         .
- (ns                                  ):              , :import, :require, :use
   .


- (in-us ‘newworld) => newworld=>
.
-      (      )                      .


- {:                      }


-   (with-mata                                ):               .
-   (identical?       1         2        ):            .
-   (meta         )       ^               :                        .
-   (assoc                 ....) :                         .
.(
        )
- var       .


- #^
:
     if            /

    do

loop / recur

    for
if
                                .
-                           .



- (if (   )           )



- (if (< 50 0) "yes" "no") => “no”



- when / when-not :
do

                                                          .


- (do            ....)


-   (if (< 50 0) (do (println "haha") "yes") (do (println "   ")

(println "haha") "no")) =>        | haha | "no"
loop / recur
                        .
- loop : let                       recur              .
- recur : loop
       .



- (loop [                   ...]    )
- (recur         ...)



- (loop [n [] x 5] (if (zero? x) (println n) (recur (conj n x) (- x 1)))) =>
[5 4 3 2 1] | nil
for

                                  .



- (for [                          ...]    )



- (for [file "ABC"] (format "%c" file)) => ("A"
"B" "C")
(boolean) / nil          true, false

(character)                  a

   (keyword)              :tag, :doc

  (map)            {:name “Bill”, :age 42}

 (number)                   1, 4.2

   (string)                “hello”

  (symbol)        user/foo, java.lang.String
:
if / (form?)       /

    do

loop / recur

    for
QnA

Weitere ähnliche Inhalte

Was ist angesagt?

Exhibition of Atrocity
Exhibition of AtrocityExhibition of Atrocity
Exhibition of AtrocityMichael Pirnat
 
A Taste of Python - Devdays Toronto 2009
A Taste of Python - Devdays Toronto 2009A Taste of Python - Devdays Toronto 2009
A Taste of Python - Devdays Toronto 2009Jordan Baker
 
Super Advanced Python –act1
Super Advanced Python –act1Super Advanced Python –act1
Super Advanced Python –act1Ke Wei Louis
 
Fertile Ground: The Roots of Clojure
Fertile Ground: The Roots of ClojureFertile Ground: The Roots of Clojure
Fertile Ground: The Roots of ClojureMike Fogus
 
밑바닥부터 시작하는 의료 AI
밑바닥부터 시작하는 의료 AI밑바닥부터 시작하는 의료 AI
밑바닥부터 시작하는 의료 AINAVER Engineering
 
Modern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter BootstrapModern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter BootstrapHoward Lewis Ship
 
Code as data as code.
Code as data as code.Code as data as code.
Code as data as code.Mike Fogus
 
Groovy puzzlers по русски с Joker 2014
Groovy puzzlers по русски с Joker 2014Groovy puzzlers по русски с Joker 2014
Groovy puzzlers по русски с Joker 2014Baruch Sadogursky
 
Taking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order FunctionsTaking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order FunctionsDavid Golden
 
Stupid Awesome Python Tricks
Stupid Awesome Python TricksStupid Awesome Python Tricks
Stupid Awesome Python TricksBryan Helmig
 
Damn Fine CoffeeScript
Damn Fine CoffeeScriptDamn Fine CoffeeScript
Damn Fine CoffeeScriptniklal
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Pythonpugpe
 
Naïveté vs. Experience
Naïveté vs. ExperienceNaïveté vs. Experience
Naïveté vs. ExperienceMike Fogus
 
An Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackAn Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackVic Metcalfe
 
Groovy vs Boilerplate and Ceremony Code
Groovy vs Boilerplate and Ceremony CodeGroovy vs Boilerplate and Ceremony Code
Groovy vs Boilerplate and Ceremony Codestasimus
 
Haskell in the Real World
Haskell in the Real WorldHaskell in the Real World
Haskell in the Real Worldosfameron
 
Perl6 a whistle stop tour
Perl6 a whistle stop tourPerl6 a whistle stop tour
Perl6 a whistle stop tourSimon Proctor
 

Was ist angesagt? (20)

Introduction to Groovy
Introduction to GroovyIntroduction to Groovy
Introduction to Groovy
 
Exhibition of Atrocity
Exhibition of AtrocityExhibition of Atrocity
Exhibition of Atrocity
 
A Taste of Python - Devdays Toronto 2009
A Taste of Python - Devdays Toronto 2009A Taste of Python - Devdays Toronto 2009
A Taste of Python - Devdays Toronto 2009
 
Super Advanced Python –act1
Super Advanced Python –act1Super Advanced Python –act1
Super Advanced Python –act1
 
Fertile Ground: The Roots of Clojure
Fertile Ground: The Roots of ClojureFertile Ground: The Roots of Clojure
Fertile Ground: The Roots of Clojure
 
밑바닥부터 시작하는 의료 AI
밑바닥부터 시작하는 의료 AI밑바닥부터 시작하는 의료 AI
밑바닥부터 시작하는 의료 AI
 
Modern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter BootstrapModern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter Bootstrap
 
Code as data as code.
Code as data as code.Code as data as code.
Code as data as code.
 
Groovy puzzlers по русски с Joker 2014
Groovy puzzlers по русски с Joker 2014Groovy puzzlers по русски с Joker 2014
Groovy puzzlers по русски с Joker 2014
 
Taking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order FunctionsTaking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order Functions
 
Stupid Awesome Python Tricks
Stupid Awesome Python TricksStupid Awesome Python Tricks
Stupid Awesome Python Tricks
 
Damn Fine CoffeeScript
Damn Fine CoffeeScriptDamn Fine CoffeeScript
Damn Fine CoffeeScript
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
 
Naïveté vs. Experience
Naïveté vs. ExperienceNaïveté vs. Experience
Naïveté vs. Experience
 
Android Guava
Android GuavaAndroid Guava
Android Guava
 
An Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackAn Elephant of a Different Colour: Hack
An Elephant of a Different Colour: Hack
 
Groovy vs Boilerplate and Ceremony Code
Groovy vs Boilerplate and Ceremony CodeGroovy vs Boilerplate and Ceremony Code
Groovy vs Boilerplate and Ceremony Code
 
Haskell in the Real World
Haskell in the Real WorldHaskell in the Real World
Haskell in the Real World
 
Academy PRO: ES2015
Academy PRO: ES2015Academy PRO: ES2015
Academy PRO: ES2015
 
Perl6 a whistle stop tour
Perl6 a whistle stop tourPerl6 a whistle stop tour
Perl6 a whistle stop tour
 

Ähnlich wie Programming Lisp Clojure - 2장 : 클로저 둘러보기

The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)jaxLondonConference
 
(first '(Clojure.))
(first '(Clojure.))(first '(Clojure.))
(first '(Clojure.))niklal
 
The groovy puzzlers (as Presented at JavaOne 2014)
The groovy puzzlers (as Presented at JavaOne 2014)The groovy puzzlers (as Presented at JavaOne 2014)
The groovy puzzlers (as Presented at JavaOne 2014)GroovyPuzzlers
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with ClojureDmitry Buzdin
 
Clojure Intro
Clojure IntroClojure Intro
Clojure Introthnetos
 
Python basic
Python basic Python basic
Python basic sewoo lee
 
Clojure for Java developers - Stockholm
Clojure for Java developers - StockholmClojure for Java developers - Stockholm
Clojure for Java developers - StockholmJan Kronquist
 
CL metaprogramming
CL metaprogrammingCL metaprogramming
CL metaprogrammingdudarev
 
The Magnificent Seven
The Magnificent SevenThe Magnificent Seven
The Magnificent SevenMike Fogus
 
Meta-objective Lisp @名古屋 Reject 会議
Meta-objective Lisp @名古屋 Reject 会議Meta-objective Lisp @名古屋 Reject 会議
Meta-objective Lisp @名古屋 Reject 会議dico_leque
 
Frege is a Haskell for the JVM
Frege is a Haskell for the JVMFrege is a Haskell for the JVM
Frege is a Haskell for the JVMjwausle
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1Little Tukta Lita
 
Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...
Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...
Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...Eelco Visser
 

Ähnlich wie Programming Lisp Clojure - 2장 : 클로저 둘러보기 (20)

The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)
 
(first '(Clojure.))
(first '(Clojure.))(first '(Clojure.))
(first '(Clojure.))
 
The groovy puzzlers (as Presented at JavaOne 2014)
The groovy puzzlers (as Presented at JavaOne 2014)The groovy puzzlers (as Presented at JavaOne 2014)
The groovy puzzlers (as Presented at JavaOne 2014)
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
Hw09 Hadoop + Clojure
Hw09   Hadoop + ClojureHw09   Hadoop + Clojure
Hw09 Hadoop + Clojure
 
Clojure入門
Clojure入門Clojure入門
Clojure入門
 
Term Rewriting
Term RewritingTerm Rewriting
Term Rewriting
 
Clojure Intro
Clojure IntroClojure Intro
Clojure Intro
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Python basic
Python basic Python basic
Python basic
 
Clojure for Java developers - Stockholm
Clojure for Java developers - StockholmClojure for Java developers - Stockholm
Clojure for Java developers - Stockholm
 
CL metaprogramming
CL metaprogrammingCL metaprogramming
CL metaprogramming
 
The Magnificent Seven
The Magnificent SevenThe Magnificent Seven
The Magnificent Seven
 
Meta-objective Lisp @名古屋 Reject 会議
Meta-objective Lisp @名古屋 Reject 会議Meta-objective Lisp @名古屋 Reject 会議
Meta-objective Lisp @名古屋 Reject 会議
 
Pune Clojure Course Outline
Pune Clojure Course OutlinePune Clojure Course Outline
Pune Clojure Course Outline
 
Frege is a Haskell for the JVM
Frege is a Haskell for the JVMFrege is a Haskell for the JVM
Frege is a Haskell for the JVM
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
 
ddd+scala
ddd+scaladdd+scala
ddd+scala
 
Basics
BasicsBasics
Basics
 
Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...
Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...
Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...
 

Mehr von JangHyuk You

게임 프로그래머를 위한 기초 수학 및 물리 - 8장
게임 프로그래머를 위한 기초 수학 및 물리 - 8장게임 프로그래머를 위한 기초 수학 및 물리 - 8장
게임 프로그래머를 위한 기초 수학 및 물리 - 8장JangHyuk You
 
게임 프로그래머를 위한 기초 수학 및 물리 - 9장
게임 프로그래머를 위한 기초 수학 및 물리 - 9장게임 프로그래머를 위한 기초 수학 및 물리 - 9장
게임 프로그래머를 위한 기초 수학 및 물리 - 9장JangHyuk You
 
도메인 주도 설계 - 6장 도메인 객체의 생명주기
도메인 주도 설계 - 6장 도메인 객체의 생명주기도메인 주도 설계 - 6장 도메인 객체의 생명주기
도메인 주도 설계 - 6장 도메인 객체의 생명주기JangHyuk You
 
Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기JangHyuk You
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장JangHyuk You
 
TAOCP1 - 2.2.2 - 순차할당
TAOCP1 - 2.2.2 - 순차할당TAOCP1 - 2.2.2 - 순차할당
TAOCP1 - 2.2.2 - 순차할당JangHyuk You
 
TAOCP1 - 1.2.11.1 - O 표기법
TAOCP1 - 1.2.11.1 - O 표기법TAOCP1 - 1.2.11.1 - O 표기법
TAOCP1 - 1.2.11.1 - O 표기법JangHyuk You
 
IT 개발자가 쓴 통쾌한 인간관리 이야기 - Part2 : 프로세스가 제품이다
IT 개발자가 쓴 통쾌한 인간관리 이야기 - Part2 : 프로세스가 제품이다IT 개발자가 쓴 통쾌한 인간관리 이야기 - Part2 : 프로세스가 제품이다
IT 개발자가 쓴 통쾌한 인간관리 이야기 - Part2 : 프로세스가 제품이다JangHyuk You
 

Mehr von JangHyuk You (8)

게임 프로그래머를 위한 기초 수학 및 물리 - 8장
게임 프로그래머를 위한 기초 수학 및 물리 - 8장게임 프로그래머를 위한 기초 수학 및 물리 - 8장
게임 프로그래머를 위한 기초 수학 및 물리 - 8장
 
게임 프로그래머를 위한 기초 수학 및 물리 - 9장
게임 프로그래머를 위한 기초 수학 및 물리 - 9장게임 프로그래머를 위한 기초 수학 및 물리 - 9장
게임 프로그래머를 위한 기초 수학 및 물리 - 9장
 
도메인 주도 설계 - 6장 도메인 객체의 생명주기
도메인 주도 설계 - 6장 도메인 객체의 생명주기도메인 주도 설계 - 6장 도메인 객체의 생명주기
도메인 주도 설계 - 6장 도메인 객체의 생명주기
 
Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
 
TAOCP1 - 2.2.2 - 순차할당
TAOCP1 - 2.2.2 - 순차할당TAOCP1 - 2.2.2 - 순차할당
TAOCP1 - 2.2.2 - 순차할당
 
TAOCP1 - 1.2.11.1 - O 표기법
TAOCP1 - 1.2.11.1 - O 표기법TAOCP1 - 1.2.11.1 - O 표기법
TAOCP1 - 1.2.11.1 - O 표기법
 
IT 개발자가 쓴 통쾌한 인간관리 이야기 - Part2 : 프로세스가 제품이다
IT 개발자가 쓴 통쾌한 인간관리 이야기 - Part2 : 프로세스가 제품이다IT 개발자가 쓴 통쾌한 인간관리 이야기 - Part2 : 프로세스가 제품이다
IT 개발자가 쓴 통쾌한 인간관리 이야기 - Part2 : 프로세스가 제품이다
 

Kürzlich hochgeladen

On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxPooja Bhuva
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxPooja Bhuva
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsSandeep D Chaudhary
 
Philosophy of china and it's charactistics
Philosophy of china and it's charactisticsPhilosophy of china and it's charactistics
Philosophy of china and it's charactisticshameyhk98
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxannathomasp01
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxCeline George
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Pooja Bhuva
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
Plant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxPlant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxUmeshTimilsina1
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...Amil baba
 
21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptx21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptxJoelynRubio1
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 

Kürzlich hochgeladen (20)

On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & Systems
 
Philosophy of china and it's charactistics
Philosophy of china and it's charactisticsPhilosophy of china and it's charactistics
Philosophy of china and it's charactistics
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Plant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxPlant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptx21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 

Programming Lisp Clojure - 2장 : 클로저 둘러보기

  • 1. Programming Lisp Clojure 2 : : : ( )
  • 2. ( ) :
  • 3. . . ( ()) .
  • 4. (Reader) - . (Reader Macro) - . - .
  • 5. #(body %) (fn [params*] body) ; deref @form (deref form) meta ^form (meta form) meda data meat data #^metadata form ‘form (quote form) form #”foo” => a java.util.regex.Pattern `x ~ ~@ var-quote #’x (var x)
  • 6. (boolean) / nil true, false (character) a (keyword) :tag, :doc (map) {:name “Bill”, :age 42} (number) 1, 4.2 (string) “hello” (symbol) user/foo, java.lang.String
  • 7. (symbol) . - - ( ) - - : /( ), .( ) - (ref) - .
  • 8. (number) - . - BigDecimal( M), BigInteger . - BigDecimal . - . - : +, -, /, *, >, >=, <, = - : quot( ), rem( ) - 42 => 42 - [1 2 3] => [1 2 3] - (/ 22 7) => 22/7 - (/ 22.0 7) => 3.142857142857143 - (+) => 0 - (+ 1 (/ 0.00001M 1000000000000000000) ) => 1.00000000000000000000001M
  • 9. (boolean) / nil . - ture, 0, () = - false, nil = - nil false . - nil/false ( list = ()/0 = zero) true . - : . (?) . ture . - (true? true) => true - (false? “foo”) => false - (zero? 0.0) => true - (nil? nil) => true - (if () “In Clojure” “in Common Lisp”) => “In Clojlure” - (if 0 “Zero” “NonZero”) => “Zero”
  • 10. (character) . - , ( ) . - (backspace), (formfeed, ), (newline), (return), (space), (tab) . - - . - str : ( ) toString nil . - (str ) => - (str space ) => - (str backspace formfeed newline newline tab ) => b f n n t
  • 11. (string) . - . - . - (“”) - . - interleave : . - apply str : interleave . . - take-nth :1 , . - (str 1 2 nil 3) => “123” - (apply str (take-nth 3 (apply str (interleave "Attack midnight" "The pur" "None")))) => “Atta”
  • 12. (map) / . (hash-code) . - {} . -{ } . - def : , . - get : . . - (def names {“ ”“ ”}) => #‘user /names - (get names “ ”) => “ ” - (get names “ ”“ ”) => “ ”
  • 13. (keyword) . - . - (:) . - defstruct : ( ) . - struct : . - struct-map : ( ) . - (def nations {: “ ”} => #‘user/nations - (nations : ) (: nations) => “ ” - (defstruct names : ) => #‘user/names - (struct names “ ”) => {: " "} - (struct-map names : “ ”) => {: " "}
  • 14. . - . - (defn [ ...] ) : . & . - #( %1, %2 ... ) (fn [ ] ) : . - (defn get “return” [user] (str “Hello, “ user) (get “world”) => “Hello, world” - (defn get [hello] (fn [user] (str get “,” user))) (defn get2 (get “Hello”) (get2 “world” => “Hello, world”)
  • 15. . - (def defn var ) : var .( .) - (var ) #’ : var . - (let [ ... ] ): .
  • 16. : (name space) . - => - (resolve ): . - (in-ns ): . - (import ‘( )) : . . - (require ‘ ): . - (use ‘ ): . - (use :reload ‘ ): . - (use :reload-all ‘ ): . - (ns ): , :import, :require, :use . - (in-us ‘newworld) => newworld=>
  • 17. . - ( ) . - {: } - (with-mata ): . - (identical? 1 2 ): . - (meta ) ^ : . - (assoc ....) : .
  • 18. .( ) - var . - #^
  • 19. : if / do loop / recur for
  • 20. if . - . - (if ( ) ) - (if (< 50 0) "yes" "no") => “no” - when / when-not :
  • 21. do . - (do ....) - (if (< 50 0) (do (println "haha") "yes") (do (println " ") (println "haha") "no")) => | haha | "no"
  • 22. loop / recur . - loop : let recur . - recur : loop . - (loop [ ...] ) - (recur ...) - (loop [n [] x 5] (if (zero? x) (println n) (recur (conj n x) (- x 1)))) => [5 4 3 2 1] | nil
  • 23. for . - (for [ ...] ) - (for [file "ABC"] (format "%c" file)) => ("A" "B" "C")
  • 24. (boolean) / nil true, false (character) a (keyword) :tag, :doc (map) {:name “Bill”, :age 42} (number) 1, 4.2 (string) “hello” (symbol) user/foo, java.lang.String
  • 25. : if / (form?) / do loop / recur for
  • 26. QnA