10 рд░реИрдХреЗрдЯ рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрдирд░реНрд╕ рдЬреЛ рдЖрдкрдХреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдВрдЧреЗ

рдореИрдВ рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдореЗрдВ "10 рд╡рди-рд▓рд╛рдЗрдирд░реНрд╕" рдХреЗ рднреВрд▓ рдЧрдП рд╡рд┐рд╖рдп рдкрд░ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣реЛрдмреЗ рдкрд░ рд╕реНрдЯреЙрд░реНрдореА рдХреА рдЪрд░реНрдЪрд╛ рдХрдИ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд╣реБрдИ рдереА ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХрдИ рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХрд▓-рд▓рд╛рдЗрдирд░реНрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдкрдардиреАрдп рдирд╣реАрдВ рдереЗред рдореИрдВ рд░реИрдХреЗрдЯ рдкрд░ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдореВрд▓ рд╕реНрдХрд╛рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЛ рднреА рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИред


1. рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЛ рдбрдмрд▓ рдХрд░реЗрдВ

рдЖрдк рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
(for/list ((i (in-range 10))) (* 2 i)) 

рдпрд╛ рддреЛ:
 (map (curry * 2) (build-list 10 (╬╗ (x) x))) 


2. рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдирдВрдмрд░реЛрдВ рдХреЛ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░реЗрдВ

 (apply + (build-list 10000 (╬╗ (x) x))) 


3. рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

 (define wordlist '("Racket" "akka" "play framework" "sbt" "curring")) ;   (define tweet "This is an example tweet talking about Racket and curring") ;   

рдкрд╣рд▓реА рдШрдЯрдирд╛ рдкрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдирд╣реАрдВ, рддреЛ # рд░рд┐рдЯрд░реНрди):
 (findf (curryr regexp-match? tweet) wordlist) 

рдЯреНрд╡реАрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╕рдмреНрд╕реНрдЯреАрдЯрдпреВрдЯ рд╢рдмреНрдж рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ:
 (filter (curryr regexp-match? tweet) wordlist) 


4. рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝рдирд╛

 (file->string "file.txt") ;    (file->lines "file.txt") ;    


5. рдЧреАрдд "рдЬрдиреНрдорджрд┐рди рдореБрдмрд╛рд░рдХ рд╣реЛ"


рдЯрд╛рдЗрдореНрд╕ рд╡рд┐рдХрд▓реНрдк
 (for-each (╬╗ (x) (display (string-append "Happy Birthday" (if x ", dear John" " to You") "\n"))) '(#f #f #t #f)) 

рджреЛ рд╡рд┐рдХрд▓реНрдк
 (for ((x (in-range 4))) (display (string-append "Happy Birthday" (if (= x 2) ", dear John" " to You") "\n"))) 

рддреАрди рд╡рд┐рдХрд▓реНрдк
 (display-lines (build-list 4 (╬╗ (x) (string-append "Happy Birthday" (if (= x 2) ", dear John" " to You"))))) 


6. рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдЫрд╛рдирдирд╛

 (partition (curry > 60) '(49 58 76 82 88 90)) 

рджреЛ рд╕реВрдЪрд┐рдпрд╛рдБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ - рдПрдХ рдЬреЛ рд╢рд░реНрдд рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЬреЛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

7. рд╡реЗрдм рд╕реЗрд╡рд╛ рд╕реЗ XML рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛

рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
 (require net/url xml) 

рдирд┐рдореНрди рдХреНрд░рд┐рдпрд╛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк xml рдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд░рдЦрддреА рд╣реИ
 (define doc (read-xml (get-pure-port (string->url "http://search.twitter.com/search.atom?&q=racket")))) 

рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЖрдк рдкрд░рд┐рдгрд╛рдореА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдкреЗрдбрд╝ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рд▓рд┐рд╕реНрдк рдХрд╛ рдореВрд▓ рд╕реНрд╡рд░реВрдк, рдЬреЛ рд░реИрдХреЗрдЯ рд╣реИ:
 (xml->xexpr (document-element doc)) 


8. рд╕реВрдЪреА рдореЗрдВ рдиреНрдпреВрдирддрдо (рдпрд╛ рдЕрдзрд┐рдХрддрдо) рдЦреЛрдЬреЗрдВ

рд╕рдВрдЦреНрдпрд╛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ:
 (apply max '(14 35 -7 46 98)) (apply min '(14 35 -7 46 98)) 


9. рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг

рдХреБрдЫ рдбреЗрдЯрд╛ рд╣реЛрдиреЗ рджреЛред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреА рджреЗрддреЗ рд╣реИрдВ:
 (define data-list '(ABCDEFGH)) 

рдФрд░ рдХреБрдЫ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рддреАрдХ рдХреЗ рдХрдИ рдореБрджреНрд░рдг рдЪреБрдирддреЗ рд╣реИрдВ:
 (define (process sym) (for ((n (in-range 10))) (display sym))) 

рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рддрд░рд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:
 (for ((x data-list)) (thread (╬╗ () (process x)))) 


10. рдПрд░рд╛рдЯреЛрд╕реНрдердиреАрдЬ рдХреА рдЫрд▓рдиреА

рдХрд╛рд░реНрдп рдмрд▓реНрдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИред рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред
рдпрд╣рд╛рдВ 2 рд╕реЗ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ
 (define (eratosphen max) (let er ([lst null] [cur 2]) (cond [(> cur max) (reverse lst)] [(ormap (╬╗ (x) (= (remainder cur x) 0)) lst) (er lst (add1 cur))] [else (er (cons cur lst) (add1 cur))]))) 

рдпрд╣ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред
рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрд░рд╛рдЯреЛрд╕реНрдердиреАрдЬ рдХреА рдЫрд▓рдиреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд╛рдЗрди рдореЗрдВ рдлрд┐рдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдВрдЦреНрдпрд╛ 113 рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП)ред
 (let check ([cur 2] [n 113]) (cond [(= (remainder n cur) 0) #f] [(> (sqr cur) n) #t] [else (check (add1 cur) n)])) 

рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рдЗрд╕реЗ "рд╕реАрдврд╝реА рдореЗрдВ" рддреЛрдбрд╝ рджреВрдВрдЧрд╛, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЕрдиреНрдп рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддрд░рд╣ред

Source: https://habr.com/ru/post/In126606/


All Articles