рдЬреЛ рдЖрдкрдХреЗ рдорд┐рддреНрд░реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛" рдкрд░ 10 рд╡рди-рд▓рд╛рдЗрдирд░реНрд╕ рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд╕рд░рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП...">

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

рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рджреМрд░рд╛рди, рдХрдИ рд╡рд┐рд╖рдп "MY_LANGUAGE> рдЬреЛ рдЖрдкрдХреЗ рдорд┐рддреНрд░реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛" рдкрд░ 10 рд╡рди-рд▓рд╛рдЗрдирд░реНрд╕ рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд╕рд░рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ-рдкрдВрдХреНрддрд┐ рд╕рдорд╛рдзрд╛рди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдпреЛрдЧреНрдпрддрд╛ рдФрд░ рд▓реЗрдЦрдХ рдХреА рдкрд╕рдВрджреАрджрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА "рд╢реАрддрд▓рддрд╛" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдФрд░ рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рдореЗрдВ рд░рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╕реНрдХрд╛рд▓рд╛ рдХреЗ рд╕рд╛рде рдкреВрд░реА рд▓рд╣рд░ рд╢реБрд░реВ рд╣реБрдИред
рддреЛ рдЪрд▓рд┐рдП!


рд╕реНрдХрд╛рд▓рд╛


рдпреЗ 10 рд╡рди-рд▓рд╛рдЗрдирд░реНрд╕ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЗ рджреЛрд╕реНрддреЛрдВ рдФрд░ рд╢рд╛рдпрдж рдорд╣рд┐рд▓рд╛рдУрдВ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХрд╛рд▓рд╛ рднрд╛рд╖рд╛ рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ :)ред рд╡реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рд╕реНрдХрд╛рд▓рд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг рднреА рд╣реИрдВ, рдЬрд┐рдирд╕реЗ рдЖрдк рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред
  1. рд╣рдо рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рддреЗ рд╣реИрдВред

    map рдлрд╝рдВрдХреНрд╢рди рд╕реВрдЪреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ 2 рд╕реЗ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрд╕реА рдЖрдХрд╛рд░ рдХреА рдПрдХ рд╕реВрдЪреА рд╡рд╛рдкрд╕ рдХреА рдЬрд╛рдПрдЧреА, рдЬреЛ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, reduceLeft рдФрд░ foldLeft рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдЧреИрд░-рд╕реВрдЪреА рдорд╛рди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред
     (1 to 10) map { _ * 2 } 
    рдореВрд▓ рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ, рдПрдХ рд╡рд┐рдХрд▓реНрдк рднреА рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
     (1 to 10) map (2*) 

  2. рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд▓рд┐рдЦреЗрдВред

    рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ рд╕реВрдЪреА рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдпреЛрдЧред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╣рдорд╛рд░реЗ рдЕрдиреБрдХреНрд░рдо to рдмрдирд╛рдиреЗ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдФрд░ reduceLeft рд▓рд┐рдП reduceLeft рд▓рд┐рдП 1 рд╕реЗ 1000 рддрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
     (1 to 1000).reduceLeft( _ + _ ) 
    рдореВрд▓ рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
     (1 to 1000).sum 

  3. рд╕рдмрд╕реНрдЯреЗрд╢рди рдХреА рдШрдЯрдирд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛

    рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдмреВрд▓рд┐рдпрди рдорд╛рди рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдПрдХ рд╢рдмреНрдж рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдХрд┐ рдЯреНрд╡реАрдЯ рдореЗрдВ рд╡рд╣ рд╢рдмреНрдж рд╣реИ рдЬреЛ рдореБрдЭреЗ рд░реБрдЪрд┐рдХрд░ рдмрдирд╛рддрд╛ рд╣реИред рд╣рд╛рдВ, рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдпреЗ рддреАрди рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рджреЛ рдХреЗрд╡рд▓ рдПрдХ рдЪрд░ рдХрд╛ рдХрд╛рдо рд╣реИрдВред
     val wordlist = List("scala", "akka", "play framework", "sbt", "typesafe") val tweet = "This is an example tweet talking about scala and sbt." (words.foldLeft(false)( _ || tweet.contains(_) )) 
    рдореВрд▓ рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
     ... wordList.exists(tweet.contains(_)) 

  4. рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝реЗрдВ

    рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЬрд╛рд╡рд╛ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпрд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ: рдПрдХ рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдлрд╝рд╛рдЗрд▓ рд▓рд╛рдЗрди рдХреЛ рд╕реВрдЪреА рдореЗрдВ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рддрд╛ рд╣реИред
     val fileText = io.Source.fromFile("data.txt").mkString val fileLines = io.Source.fromFile("data.txt").getLines.toList 

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

    рдПрдХ рд╡рди-рд▓рд╛рдЗрдирд░ рдЬреЛ "рд╣реИрдкреА рдмрд░реНрдердбреЗ" рдЧреАрдд рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдХрд╛рд▓рд╛ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде map рдФрд░ foreach рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
     (1 to 4).map { i => "Happy Birthday " + (if (i == 3) "dear NAME" else "to You") }.foreach { println } 

  6. рдирдВрдмрд░ рд╕реВрдЪреА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ

    partition рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рджреЛ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджреЛ рдЫрд╛рддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рдЙрдирдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЧрдИ рд╣реИред
     val (passed, failed) = List(49, 58, 76, 82, 88, 90) partition ( _ > 60 ) 

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

    рдЪреВрдБрдХрд┐ XML Scala рдХреА рдореВрд▓ рд░реВрдкрд░реЗрдЦрд╛ рд╣реИ, XML parsing рд╕рд░рд▓ рд╣реИред рдпрд╣рд╛рдВ рдЯреНрд╡рд┐рдЯрд░ рдЦреЛрдЬ рдлрд╝реАрдб рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
     val results = XML.load("http://search.twitter.com/search.atom?&q=scala") 

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

    рдПрдХ рд╕реВрдЪреА рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдФрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо reduceLeft рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдФрд░ рдЙрджрд╛рд╣рд░рдгред
     List(14, 35, -7, 46, 98).reduceLeft ( _ min _ ) List(14, 35, -7, 46, 98).reduceLeft ( _ max _ ) 
    рдореВрд▓ рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
     List(14, 35, -7, 46, 98).min List(14, 35, -7, 46, 98).max 

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

    рд╕реНрдХрд╛рд▓рд╛ 2.9 рдореЗрдВ, рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ "рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрдЧреНрд░рд╣" рдХрд╣рд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдорд▓реНрдЯреА-рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд▓реНрдХ рдСрдкрд░реЗрд╢рдВрд╕ рдЬреИрд╕реЗ рдХрд┐ foreach , map , filter , рдЗрддреНрдпрд╛рджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ... рдпрд╣рд╛рдБ рд╕реНрдХреЗрд▓ рдбреЗрдЬрд╝ 2010 рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдкреНрд░реЛрдХреЛрдкреЗрдЯреНрд╕ рд╕реЗ рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╣реИ ред

    рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрдЧреНрд░рд╣реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рд▓рд┐рд╕реНрдЯ рд╕реВрдЪреА рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрд╕реЗрд╕ рдЗрдЯреЗрдо рдлрд╝рдВрдХреНрд╢рди рдмрд╣реБрдд рднрд╛рд░реА рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ-рд▓рд╛рдЗрдирд░ рдЖрдкрдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕реВрдЪреА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рджреЗрддрд╛ рд╣реИред
     val result = dataList.par.map(line => processItem(line)) 

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

    рдЦреИрд░, рдЗрд╕ рдмрд╛рд░ рдЙрджрд╛рд╣рд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдПрдХ-рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдСрдкрд░реЗрдЯрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡реИрд╕реЗ рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдкрдардиреАрдп рди рд╣реЛред рдбреИрдирд┐рдпрд▓ рд╕реЛрдмрд░рд╛рд▓ рдиреЗ рдЫрд▓рдиреА рдСрдл рдПрд░рд╛рдЯреЛрд╕реНрдердиреАрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд┐рдЦрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдзрд╛рди рд╣реИ ред
     (n: Int) => (2 to n) |> (r => r.foldLeft(r.toSet)((ps, x) => if (ps(x)) ps -- (x * x to n by x) else ps)) 
    рд╕рдВрдЪрд╛рд▓рдХ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ F # рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреАрд╡ рдЧрд┐рд▓рд╣рдо рдХреЗ рдмреНрд▓реЙрдЧ рдХреЛ рджреЗрдЦреЗрдВ ред
рдореВрд▓ рдкреЛрд╕реНрдЯ: "рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10 рд╕реНрдХрд╛рд▓рд╛ рд╡рди рд▓рд╛рдЗрдирд░реНрд╕"
рдкреЛрд╕реНрдЯ рдХрд░рдиреЗрд╡рд╛рд▓реЗ: Marcus Kazmierczak


CoffeScript


рдЖрдкрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ HN рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдорд╛рд░реНрдХрд╕ рдХрд╛рдЬрд╝рдореАрд░реЗрдХрдХ рдмреНрд▓реЙрдЧ рдкрд░ рдкреЛрд╕реНрдЯ " 10 рд╕рд┐рдВрдЧрд▓ рд▓рд╛рдЗрди рдСрди рд╕реНрдХрд╛рд▓рд╛ рдЯреВ рдЗрдореНрдкреНрд░реЗрд╕ рдпреЛрд░ рдлреНрд░реЗрдВрдбреНрд╕ " рдкрдврд╝рд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ рд╕реНрдХрд╛рд▓рд╛ (рдпрд╛ рдЬрд╛рд╡рд╛) рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдХреБрдЫ рд▓реЛрдЧ рдЬрд╛рд╡рд╛ рд╕реЗ рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдо рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдиреЛрдб.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

  1. рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдЖрдЗрдЯрдо рджреЛрд╣рд░реАрдХрд░рдг

    рдорд╛рд░реНрдХрд╕ map рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдПрдХ рд╣реА range рдФрд░ рдПрдХ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
     [1..10].map (i) -> i*2 
    рд▓реЗрдХрд┐рди рдЖрдк рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ
     i * 2 for i in [1..10] 

  2. рд╕рдВрдЦреНрдпрд╛ рд╕реВрдЪреА рдпреЛрдЧ

    рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдореЗрдВ рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд map рдФрд░ рдлрд╝рдВрдХреНрд╢рди reduce рдХрд░рддреЗ рд╣реИрдВ:
     [1..1000].reduce (t, s) -> t + s 
    (рдХрдо рдХрд░реЗрдВ == рдХрдо рдХрд░реЗрдВ, рдХрдо рдХрд░реЗрдВ, рд░рд╛рдЗрдЯ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ)

  3. рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

    рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ some рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рд╕рд╣реА рд╣реИ рдЕрдЧрд░ рд╕рд░рдгреА рдореЗрдВ рдХреЛрдИ рднреА рддрддреНрд╡ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реИ:
     wordList = ["coffeescript", "eko", "play framework", "and stuff", "falsy"] tweet = "This is an example tweet talking about javascript and stuff." wordList.some (word) -> ~tweet.indexOf word 
    рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╢рдмреНрдж рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗ:
     wordList.filter (word) -> ~tweet.indexOf word 
    " ~ " CoffeeScript рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдСрдкрд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рдЧрдВрджрд╛ рдЪрд╛рд▓ рд╣реИред рдпрд╣ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ NOT рдСрдкрд░реЗрдЯрд░ рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рдСрдкрд░реЗрдВрдб рдХреЗ рдмрд┐рдЯреНрд╕ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ -x-1 рдмрд░рд╛рдмрд░ рд╣реИред рдпрд╣рд╛рдВ рдпрд╣ рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо -1 рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ -(-1)-1 == 0 рдЧрд▓рдд рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИред

  4. рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реЗрдВ

    рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ:
     fs.readFile 'data.txt', (err, data) -> fileText = data 
    рдЖрдк рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
     fileText = fs.readFileSync('data.txt').toString() 
    рд▓реЗрдХрд┐рди рдиреЛрдб.рдЬреЗрдПрд╕ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

    рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдПрдХ рд╕реЗ рдПрдХ рд╕реНрдХреЗрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
     [1..4].map (i) -> console.log "Happy Birthday " + (if i is 3 then "dear Robert" else "to You") 
    рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рдФрд░ рдмреЗрд╣рддрд░ рд╣реИред рдпрд╣ рд▓рдЧрднрдЧ рдЫрджреНрдо рдХреЛрдб рдХреА рддрд░рд╣ рдкрдврд╝рддрд╛ рд╣реИ:
     console.log "Happy Birthday #{if i is 3 then "dear Robert" else "to You"}" for i in [1..4] 

  6. рдирдВрдмрд░ рд╕реВрдЪреА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ

    рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдЫрд╛рдирдирд╛ рдХрд╛рдлреА рд╣рдж рддрдХ рд╕рдорд╛рди рд╣реИ:
     passed = [] failed = [] (if score > 60 then passed else failed).push score for score in [49, 58, 76, 82, 88, 90] 
    (рдЖрдк рдЕрднреА рднреА рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рддрдм рдЖрдкрдХреЛ рдПрдХ рднреА рд▓рд╛рдЗрди рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреА)

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

    XML рдХреНрдпрд╛? рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрджрд▓реЗ JSON рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
     request.get { uri:'path/to/api.json', json: true }, (err, r, body) -> results = body 

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

    apply рдлрд╝рдВрдХреНрд╢рди рдпрд╣рд╛рдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: Math.max рдФрд░ Math.min рддрд░реНрдХ рдХреА рдПрдХ рдЪрд░ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддред Math.max 30, 10, 20 рд░рд┐рдЯрд░реНрди 30 ред рдЪрд▓реЛ рдПрдХ рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:
     Math.max.apply @, [14, 35, -7, 46, 98] # 98 Math.min.apply @, [14, 35, -7, 46, 98] # -7 

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

    рдпрд╣ рдЕрднреА рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдЖрдк рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ WebWorkers API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдорд┐рд╕ред

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

    рдЗрд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд▓рд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?
     sieve = (num) -> numbers = [2..num] while ((pos = numbers[0]) * pos) <= num delete numbers[i] for n, i in numbers by pos numbers.shift() numbers.indexOf(num) > -1 
    рдЕрдкрдбреЗрдЯ (5 рдЬреВрди): @dionyziz рдиреЗ рдореБрдЭреЗ рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рднреЗрдЬрд╛:
     primes = [] primes.push i for i in [2..100] when not (j for j in primes when i % j == 0).length 
    рдЬрд┐рд╕реЗ рд╣рдо рдореВрд▓ рдХреЗ рд╕рдорд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
     (n) -> (p.push i for i in [2..n] when not (j for j in (p or p=[]) when i%j == 0)[0]) and n in p 
    рдпрд╛ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ:
     (n) -> (p.push i for i in [2..n] when !(p or p=[]).some((j) -> i%j is 0)) and n in p 

  11. рдмреЛрдирд╕

    рдЖрдкрдиреЗ рдХрднреА рджреЗрдЦрд╛ рд╣реИ fizzbuzz рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрдврд╝рд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг:
     "#{if i%3 is 0 then 'fizz' else ''}#{if i%5 is 0 then 'buzz' else ''}" or i for i in [1..100] 
    рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд░рд▓, рд▓реЗрдХрд┐рди рдореБрд╢реНрдХрд┐рд▓, рд╡реНрдпрдВрдЧреНрдп рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде:
     ['fizz' unless i%3] + ['buzz' unless i%5] or i for i in [1..100] 
рдореВрд▓ рдкреЛрд╕реНрдЯ: "рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10 рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд▓рд╛рдЗрдирд░
"
рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: рд░рд┐рдХрд╛рд░реНрдбреЛ рдЯреЛрдорд╛рд╕реА


рдПрдл #


рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХрд╛рд▓рд╛ рдкрд░ 10 " 10 рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрдирд░реНрд╕ рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ" рдпрд╣рд╛рдВ рдПрдл # рдкрд░ рдХреБрдЫ рдПрдХрд▓-рд▓рд╛рдЗрдирд░ рд╣реИрдВ:
  1. рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдирдВрдмрд░реЛрдВ рдХрд╛ рджреЛрд╣рд░реАрдХрд░рдг

    рдпрд╣ рд╕рд░рд▓ рд╣реИ, рдПрдл # рдореЗрдВ рдПрдХ map рднреА рд╣реИ:
     [1 .. 4] |> Seq.map (fun x -> x * x);; 

  2. рд╕рдВрдЦреНрдпрд╛ рд╕реВрдЪреА рдпреЛрдЧ

    рдпрд╣ рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓ рд╣реИ, рдЬрд┐рддрдирд╛ F # рдореЗрдВ sum :
     [1 .. 4] |> Seq.sum;; 

  3. рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

    рдФрд░ рдпрд╣ рд╕рд░рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ find :
     ["f#"; "scala"] |> Seq.find(fun w -> "this tweet contains f#".Contains(w));; 

  4. рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рдирд╛ (рдЙрдмрд╛рдК!)

    F # рдореЗрдВ рд╕рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИрдВред рдиреЗрдЯред рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:
     File.ReadLines(@"file.txt") |> Seq.map(fun l -> l.Length) |> Seq.sum;; 

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

    рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЙрдмрд╛рдК ... рдЗрд╕ рддрд░рд╣:
     [1 .. 4] |> Seq.map (fun i -> "Happy Birthday " + (if i = 3 then "dear NAME" else "to you")) |> Seq.iter Console.WriteLine;; 

  6. рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рднрд╛рдЬрди) рдХреА рд╕реВрдЪреА

    рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд partition рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реВрдЪреА рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
     [49; 58; 76; 82; 88; 90] |> List.partition (fun i -> i > 60);; 

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

    рдлрд┐рд░ рд╕реЗ, .NET рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛рдо рдореЗрдВ рдЖрддреА рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдПрдл # рдореЗрдВ рдПрдХ-рд▓рд╛рдЗрдирд░ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдбреЙрди рд╕рд┐рдореЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдФрд░ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рд╣реИ ред

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

    рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, F # рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХрд╛рд░реНрдп:
     [49; 58; 76; 82; 88; 90] |> Seq.min;; [49; 58; 76; 82; 88; 90] |> Seq.max;; 

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

    рдпрд╣ рдЬреЗ рд░реЛрд╢рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ isprime рд╡рд┐рдзрд┐ рд╣реИ, рдФрд░ рд╣рдо 1 рд╕реЗ 50,000 рддрдХ рдЙрдирдХреЗ рдЕрдВрддрд┐рдо рдЕрдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣реАрдХреГрдд primes рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред PSeq рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ:
     [|1 .. 50000|] |> PSeq.filter isprime |> PSeq.groupBy (fun i -> i % 10) |> PSeq.map (fun (k, vs) -> (k, Seq.length vs)) |> Seq.toArray |> Seq.sort |> Seq.toList;; 
рдореВрд▓ рдкреЛрд╕реНрдЯ: "F # рд╡рди рд▓рд╛рдЗрдирд░реНрд╕ рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП"
рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: рд╡рд┐рд▓ рдлрд┐рдЬрд░рд╛рд▓реНрдбрд╝


рдЧрд╣рд░реЗ рд▓рд╛рд▓ рд░рдВрдЧ рдХрд╛


рд╕реНрдХрд╛рд▓рд╛ рдХреА рд╕реНрдкрд╖реНрдЯрддрд╛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 10 рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреА рдЧрдИ рд╣реИред рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдЬрд▓реНрджреА рд╕реЗ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдХреЗрд▓реЗ рд░реВрдмреА рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рд╕реНрдХреИрд▓рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░реВрдмреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛рдл рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ (рдХрдо рд╕реЗ рдХрдо рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдпреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ) рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рдорд╛рди рд╣реИред
  1. рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдирдВрдмрд░реЛрдВ рдХрд╛ рджреЛрд╣рд░реАрдХрд░рдг

     (1..10).map { |n| n * 2 } 

  2. рд╕рдВрдЦреНрдпрд╛ рд╕реВрдЪреА рдпреЛрдЧ

     (1..1000).inject { |sum, n| sum + n } 
    рдпрд╛ (рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд) Symbol#to_proc , рдЬреЛ рд░реВрдмреА рд╕рдВрд╕реНрдХрд░рдг 1.8.7 рдХреЗ рдмрд╛рдж рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ:
     (1..1000).inject(&:+) 
    рдпрд╛ рдЗрд╕ рддрд░рд╣ рднреА:
     (1..1000).inject(:+) 

  3. рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

     words = ["scala", "akka", "play framework", "sbt", "typesafe"] tweet = "This is an example tweet talking about scala and sbt." words.any? { |word| tweet.include?(word) } 

  4. рдлрд╛рдЗрд▓реЗрдВ рдкрдврд╝рдирд╛

     file_text = File.read("data.txt") file_lines = File.readlines("data.txt") 
    рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдореЗрдВ рд╕рд░рдгреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рдЕрдВрдд рдореЗрдВ "\ n" рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ .map { |str| str.chop } .map { |str| str.chop } рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░:
     File.read("data.txt").split(/\n/) 

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

     4.times { |n| puts "Happy Birthday #{n==2 ? "dear Tony" : "to You"}" } 

  6. рдирдВрдмрд░ рд╕реВрдЪреА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ

     [49, 58, 76, 82, 88, 90].partition { |n| n > 60 } 

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

     require 'open-uri' require 'hpricot' results = Hpricot(open("http://search.twitter.com/search.atom?&q=scala")) 
    рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдУрдкрди-рдпреВрд░реА рдФрд░ рд╢реНрд░реАрдХреЛрд░реНрдЯ рдпрд╛ рд╕рдордХрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рдЖрдк рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрдб рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХрд╛рд▓рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдЬреАрддрддреА рд╣реИред

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

     [14, 35, -7, 46, 98].min [14, 35, -7, 46, 98].max 

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

     require 'parallel' Parallel.map(lots_of_data) do |chunk| heavy_computation(chunk) end 
    рд╕реНрдХрд╛рд▓рд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдорд▓реНрдЯреА-рдХреЛрд░ рд╕рдорд░реНрдерди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирд╛рдВрддрд░ рдпрд╛ рд╕рдорд╛рди рд░рддреНрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

    рд╕реНрдХрд╛рд▓рд╛ рдкрд░ рд╡рди-рд▓рд╛рдЗрдирд░ рдмрд╣реБрдд рд╣реА рдЕрдкрдорд╛рдирдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдардиреАрдп рд╣реИред рд░реВрдмреА рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
     index = 0 while primes[index]**2 <= primes.last prime = primes[index] primes = primes.select { |x| x == prime || x % prime != 0 } index += 1 end p primes 
    рдпрд╣ рдЙрджрд╛рд╣рд░рдг StackOverflow рдХреЗ рд╕рд╛рде рд╣реИред

рдореВрд▓ рдкреЛрд╕реНрдЯ: "рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10 рд░реВрдмреА рд╡рди рд▓рд╛рдЗрдирд░реНрд╕"
рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: рдПрдВрдЯреЛрдирд┐рдпреЛ Cangiano


Clojure


рдореИрдВрдиреЗ рдЖрдЬ рджреЗрдЦрд╛ рдХрд┐ " 10 рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрди рдСрди рд╕реНрдХрд╛рд▓рд╛ рдСрди рдЗрдореНрдкреНрд░реЗрд╕ рдпреЛрд░ рдлреНрд░реЗрдВрдбреНрд╕ " рдирд╛рдордХ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреЛрд╕реНрдЯ , рдФрд░ рдлрд┐рд░ рдХрд┐рд╕реА рджреВрд╕рд░реЗ рдкреЛрд╕реНрдЯ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬрд┐рд╕рдХрд╛ рд╢реАрд░реНрд╖рдХ рдерд╛ " 10 рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрди рдСрди рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрди рдЗрдореНрдкреНрд░реЗрд╕ рдпреЛрд░ рдлреНрд░реЗрдВрдбреНрд╕ "ред рдпреЗ рджреЛ рдкреЛрд╕реНрдЯ рдЫреЛрдЯреЗ рдХрд╛рд░реНрдп рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ (рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдореЗрдВ рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рддреБрдЪреНрдЫ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ), рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд▓рдЧрднрдЧ 1 рдкрдВрдХреНрддрд┐ рдХреЗ рдХреЛрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ - рдХреНрд▓реЛрдЬрд░ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛ред
  1. рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдирдВрдмрд░реЛрдВ рдХрд╛ рджреЛрд╣рд░реАрдХрд░рдг

     (map #(* % 2) (range 1 11)) 

  2. рд╕рдВрдЦреНрдпрд╛ рд╕реВрдЪреА рдпреЛрдЧ

     (reduce + (range 1 1001)) 

  3. рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

    рдореБрдЭреЗ рдпрд╣рд╛рдВ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ:
     (def tweet "This is an example tweet talking about clojure and emacs.") (def regex (re-pattern (apply str (interpose "|" ["clojure" "logic" "compojure" "emacs" "macros"])))) (re-seq regex tweet) ;   ,   true/false 
    рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░реЛрдВ рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдХреНрд▓реЛрдЬрд╝рд░ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
     (def tweet "This is an example tweet talking about clojure and emacs.") (def is-word? (set ["clojure" "logic" "compojure" "emacs" "macros"])) (not (nil? (some is-word? (.split tweet " ")))) ;  true/false 

  4. рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реЗрдВ

     (def file-text (slurp "data.txt")) ;    (def file-lines (clojure.contrib.io/read-lines "data.txt")) ;    
    Clojure Contrib рдХреЛ Clojure рдХреА рднрд╡рд┐рд╖реНрдп рдХреА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ clojure.contrib.io/read-lines рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, clojure.contrib.io/read-lines рдХреЛ (line-seq (clojure.java.io/reader (clojure.java.io/file тАЬdata.txtтАЭ))) рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (line-seq (clojure.java.io/reader (clojure.java.io/file тАЬdata.txtтАЭ))) рдХреНрд▓реЛрдЬрд░ рдореЗрдВ 1.3 рдФрд░ рдмрд╛рдж рдореЗрдВред рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реВрди рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред

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

     (doseq [l (map #(str "Happy Birthday " (if (= % 2) "dear Rich" "to You")) (range 4))] (println l)) 
    рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг:
     (dotimes [n 4] (println "Happy Birthday " (if (= n 2) "dear Rich" "to You"))) 

  6. рдирдВрдмрд░ рд╕реВрдЪреА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ

     (partition-by #(> % 60) [49 58 76 82 88 90]) 

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

     (clojure.xml/parse "http://search.twitter.com/search.atom?&q=clojure") 

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

     (reduce max [14 35 -7 46 98]) (reduce min [14 35 -7 46 98]) ;;     ((juxt #(reduce max %) #(reduce min %)) [14 35 -7 46 98]) ;  [98 -7] 

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

     ;; ,  process-line -     ,    (pmap process-line lines) ;    "p"  map 

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

    рдореИрдВ "рдПрд░рд╛рдЯреЛрд╕реНрдердиреАрдЬ рдХреА рдЫрд▓рдиреА" рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрди рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП (рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕реБрдВрджрд░рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реВрдВред рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕рднреА рдХреЛ рдЪрд▓рдиреА рдХреА рдЦрд╛рддрд┐рд░ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ " рд╢реАрд░реНрд╖рдХ рд╕реЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреНрд░рд┐рд╕реНрдЯреЛрдл рдЧреНрд░рд╛рдВрдб рдХреЗ рдХрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

  11. FizzBuzz рд╕рдорд╛рдзрд╛рди

     (map #(cond (zero? (mod % 15)) "FizzBuzz" (zero? (mod % 3)) "Fizz" (zero? (mod % 5)) "Buzz" :else %) (range 1 101)) 
рдореВрд▓ рдкреЛрд╕реНрдЯ: "рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10 рдХреНрд▓реЛрдЬрд░ рд╡рди рд▓рд╛рдЗрдирд░реНрд╕"
рдкреЛрд╕реНрдЯ рдХрд░рдиреЗрд╡рд╛рд▓реЗ: рдмреИрд╢рдореНрдкрд╛рдпрди


рдЕрдЬрдЧрд░


Scala / Ruby / Clojure / CoffeeScript рдореЗрдВ 10 рдЕрджреНрднреБрдд рд╡рди-рд▓рд╛рдЗрдирд░реНрд╕ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдкрд╛рдпрдерди рдореЗрдВ рднреА рдРрд╕рд╛ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред

рдмрд┐рдирд╛ рдЬреНрдпрд╛рджрд╛ рд╢реЛрд░ рдХрд┐рдП ... рдЪрд▓реЛ рдЪрд▓реЗрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЪрд░ рдШреЛрд╖рдгрд╛рдПрдВ рдФрд░ рдЖрдпрд╛рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкрд░рд┐рдгрд╛рдо рддреНрд╡рд░рд┐рдд рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдЖ рдЬрд╛рдПред

рдпрд╣ рдкреЛрд╕реНрдЯ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рддреЗрдЬ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛ рдерд╛ред
  1. рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдирдВрдмрд░реЛрдВ рдХрд╛ рджреЛрд╣рд░реАрдХрд░рдг

     print map(lambda x: x * 2, range(1,11)) 

  2. рд╕рдВрдЦреНрдпрд╛ рд╕реВрдЪреА рдпреЛрдЧ

     print sum(range(1,1001)) 

  3. рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

     wordlist = ["scala", "akka", "play framework", "sbt", "typesafe"] tweet = "This is an example tweet talking about scala and sbt." print map(lambda x: x in tweet.split(),wordlist) 

  4. рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реЗрдВ

     print open("ten_one_liners.py").readlines() 

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

     print map(lambda x: "Happy Birthday to " + ("you" if x != 2 else "dear Name"),range(4)) 

  6. рдирдВрдмрд░ рд╕реВрдЪреА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ

     print reduce(lambda(a,b),c: (a+[c],b) if c > 60 else (a,b + [c]), [49, 58, 76, 82, 88, 90],([],[])) 

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

     from xml.dom.minidom import parse, parseString import urllib2 # note - i convert it back into xml to pretty print it print parse(urllib2.urlopen("http://search.twitter.com/search.atom?&q=python")).toprettyxml(encoding="utf-8") 

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

     print min([14, 35, -7, 46, 98]) print max([14, 35, -7, 46, 98]) 

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

     import multiprocessing import math print list(multiprocessing.Pool(processes=4).map(math.exp,range(1,11))) 

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

     n = 50 #      2  50 print sorted(set(range(2,n+1)).difference(set((p * f) for p in range(2,int(n**0.5) + 2) for f in range(2,(n/p)+1)))) 
рдореВрд▓ рдкреЛрд╕реНрдЯ: "рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10 рдЕрдЬрдЧрд░ рдПрдХ рд▓рд╛рдЗрдирд░"
рдкреЛрд╕реНрдЯ рдХрд░рдиреЗрд╡рд╛рд▓реЗ: рдзрдирдВрдЬрдп рдиреЗрдиреЗ


C #


  1. рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдирдВрдмрд░реЛрдВ рдХрд╛ рджреЛрд╣рд░реАрдХрд░рдг
     Print("Multiple each item in a list by 2", Enumerable.Range(1, 10).Select(i => i * 2)); 

  2. рд╕рдВрдЦреНрдпрд╛ рд╕реВрдЪреА рдпреЛрдЧ

     Print("Sum a list of numbers", Enumerable.Range(1, 1000).Sum()); 

  3. рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

     var wordlist = new[] { "C#", "and stuff" }; var tweet = "This is an example tweet talking about C# and stuff"; Print("Verify if a word exists in string", wordlist.Any(word => tweet.IndexOf(word) > -1)); Print("Show matched words in string", wordlist.Where(word => tweet.IndexOf(word) > -1)); 

  4. рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реЗрдВ

     Print("Read in a File", File.ReadAllBytes("oneliners.exe").Length); 

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

     Print("Happy Birthday", Enumerable.Range(1, 4).Select((i) => string.Format("Happy Birthday {0} ", i == 3 ? "dear NAME" : "to You"))); 

  6. рдирдВрдмрд░ рд╕реВрдЪреА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ

     var passed = new List<int>(); var failed = new List<int>(); (from bucket in new[] { passed, failed } from i in new[] { 49, 58, 76, 82, 88, 90 } select new { bucket, i }).ToList().ForEach((tuple) => tuple.bucket.AddRange(Enumerable.Repeat(tuple, 1).Where((tup) => (tup.bucket == passed && tup.i > 60) || (tup.bucket == failed && tup.i <= 60)).Select((tup) => tup.i))); Print("Filter list of numbers >60", (IEnumerable<int>)passed); Print("Filter list of numbers <=60", (IEnumerable<int>)failed); 

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

     Print("Fetch and Parse an XML web service", XDocument.Load("http://search.twitter.com/search.atom?&q=scala")); 

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

     Print("Find minimum in a list", Enumerable.Min(new[] { 14, 35, -7, 46, 98 })); Print("Find maximum in a list", Enumerable.Max(new[] { 14, 35, -7, 46, 98 })); 

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

     Print("Parallel Processing", Enumerable.Range(1, 10).AsParallel().Select((i)=>i*2).AsEnumerable()); 

  10. FizzBuzz

     Print("Fizzbuzz", Enumerable.Range(1, 15).Select((i)=>i + (i%3==0?"fizz":"") + (i%5==0?"buzz":""))); 
рдореВрд▓ рдкреЛрд╕реНрдЯ: "10 рд╕реА # рдПрдХ рд▓рд╛рдЗрдирд░ рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП"
рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: рд░рд┐рдЪрд░реНрдб рдмрд┐рд░реНрдХрдмреА


рд╣рд╛рд╕реНрдХреЗрд▓


рдореЗрдореЗ ( рд╕реНрдХреЗрд▓рд╛ , рд░реВрдмреА , рдХреНрд▓реЛрдЬрд░ , рдкрд╛рдЗрдерди , рдПрдл # , рдХреЙрдлрд┐рд╕рд╕реНрдХреНрд░рд┐рдкреНрдЯ , рд╕реА # ) рдХреЗ рдмрд╛рджред

  1. рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдирдВрдмрд░реЛрдВ рдХрд╛ рджреЛрд╣рд░реАрдХрд░рдг
     map (*2) [1..10] 

  2. рд╕рдВрдЦреНрдпрд╛ рд╕реВрдЪреА рдпреЛрдЧ

     foldl (+) 0 [1..1000] --   sum [1..1000] 

  3. рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

     import Data.List let wordlist = ["monad", "monoid", "Galois", "ghc", "SPJ"] let tweet = "This is an example tweet talking about SPJ interviewing with Galois" or $ map (flip isInfixOf tweet) wordlist --   any (flip isInfixOf tweet) wordlist 

  4. рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реЗрдВ

     fileText <- readFile "data.txt" let fileLines = lines fileText --   let fileLines = fmap lines $ readFile "data.txt" 

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

     mapM_ putStrLn ["Happy Birthday " ++ (if x == 3 then "dear NAME" else "to You") | x <- [1..4]] 

  6. рдирдВрдмрд░ рд╕реВрдЪреА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ

     let (passed, failed) = partition (>60) [49, 58, 76, 82, 88, 90] 

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

    рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, curl рдФрд░ xml рдкреИрдХреЗрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдирдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП RWH рджреЗрдЦреЗрдВред
     import Network.Curl import Text.XML.Light import Control.Monad let results = liftM parseXMLDoc $ liftM snd (curlGetString "http://search.twitter.com/search.atom?&q=haskell" []) --   Control.Applicative let results = parseXMLDoc . snd <$> curlGetString "http://search.twitter.com/search.atom?&q=haskell" [] 

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

     foldl1 min [14, 35, -7, 46, 98] foldl1 max [14, 35, -7, 46, 98] --   minimum [14, 35, -7, 46, 98] maximum [14, 35, -7, 46, 98] 

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

    рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ parallel рдкреИрдХреЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
     import Control.Parallel import Control.Parallel.Strategies parMap rseq (*2) [1..100] 

  10. рдкреНрд░рд╛рдЗрдо рдирдВрдмрд░ рдЬрдирд░реЗрд╢рди

     let pgen (p:xs) = p : pgen [x|x <- xs, x `mod` p > 0] take 40 (pgen [2..]) 
рдореВрд▓ рдкреЛрд╕реНрдЯ: "рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10 рд╣рд╛рд╕реНрдХреЗрд▓ рд╡рди рд▓рд╛рдЗрдирд░реНрд╕"
рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: рдорд╛рдЗрдХрд▓ рдлреЛрдЧрд╕



рдФрд░ рдЕрдм рдЖрдкрдХреЗ рд╡рд┐рдХрд▓реНрдк, рдФрд░ рд╣реЛрд▓реАрд╡рд░ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ! )

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


All Articles