Free Downloads
Learning Scala: Practical Functional Programming For The JVM

Why learn Scala? You don’t need to be a data scientist or distributed computing expert to appreciate this object-oriented functional programming language. This practical book provides a comprehensive yet approachable introduction to the language, complete with syntax diagrams, examples, and exercises. You’ll start with Scala's core types and syntax before diving into higher-order functions and immutable data structures.Author Jason Swartz demonstrates why Scala’s concise and expressive syntax make it an ideal language for Ruby or Python developers who want to improve their craft, while its type safety and performance ensures that it’s stable and fast enough for any application.Learn about the core data types, literals, values, and variablesDiscover how to think and write in expressions, the foundation for Scala's syntaxWrite higher-order functions that accept or return other functionsBecome familiar with immutable data structures and easily transform them with type-safe and declarative operationsCreate custom infix operators to simplify existing operations or even to start your own domain-specific languageBuild classes that compose one or more traits for full reusability, or create new functionality by mixing them in at instantiation

Paperback: 256 pages

Publisher: O'Reilly Media; 1 edition (December 28, 2014)

Language: English

ISBN-10: 1449367933

ISBN-13: 978-1449367930

Product Dimensions: 7 x 0.6 x 9.2 inches

Shipping Weight: 15.2 ounces (View shipping rates and policies)

Average Customer Review: 4.5 out of 5 stars  See all reviews (22 customer reviews)

Best Sellers Rank: #182,024 in Books (See Top 100 in Books) #14 in Books > Computers & Technology > Programming > Functional #69 in Books > Textbooks > Computer Science > Object-Oriented Software Design #212 in Books > Computers & Technology > Programming > Languages & Tools > Java

Read a little, type in several lines of code, read some more.At least three quarters of the book amounts to a language feature survey using the command-line ‘REPL’ (‘interpreter’ for us downtown folk). There’s nothing wrong with that, per se, so long as it fits your learning style. There’s no end-to-end demo app built throughout the book and none of the code remotely approaches anything standalone or utilitarian.It’s only in the concluding chapters that the author introduces the SBT, the equivalent of a make tool, as well as one of the Scala IDEs but the coverage is far from in-depth.In a way, the book reminds me of K&R: It presents isolated examples of good quality code designed to illustrate features while it assumes readers have the architectural insight to build-upon and integrate these into useful applications.Scala is built on top of the JVM and uses many of the same data types as Java. Obviously a Java background is helpful but so is experience with Python or any LISP-derived dynamic language.A solid C/C++ background is fine and you’ll notice parallels and conceptual borrowings: Scala’s preference for immutable values over variables is essentially a restatement of the C++ maxim ‘use const wherever possible’ for data safety and easier debugging.I think the book is inappropriate as a first programming text for beginners. Don’t be fooled by the early elementary examples in the data types chapter (i.e. declaring values, variables and performing basic arithmetic on them). The later chapters on collections, classes and objects assume fairly deep familiarity with OO concepts.

I thought this was a great book on introductory scala which I am learning. I read the book all the way through and exercised many of the examples after downloading and installing Scala. As other reviewers have mentioned this is not a beginners programming book. I found the writing to be very good although sometimes a little hard to understand. Most of the time the more difficult sentences are immediately clarified by a good example - a very effective technique. Occasionally some of the writing remained mysterious to me and I just moved on. I found maybe one typo which is always a good sign.I thought the examples were excellent and did so much to explain the accompanying text. All of the examples I tested worked fine. I agree with many of the reviewers about some of the drawbacks - sometimes the code was a little cryptic (although the Scala language is very succinct and so much so that one can lose track of just what features are being demonstrated).The criticism that an end to end real world example is not given seems to be a little unreasonable since such a thing is by definition an advanced treatment (and this is a beginner Scala book); further there are an infinite number of possible large real world applications to describe and when one is fixated on the requirements of one, the others will be neglected. Observing one full, larger application doesn't necessarily help someone to develop their own application. Yes, the REPL shell was used throughout with little discussion of version control or IDEs but those concepts are for one or more separate books and beyond the scope of this one.I do agree the Exercises were difficult and I did not do any of them.

Learning Scala: Practical Functional Programming for the JVM Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM Programming Scala: Scalability = Functional Programming + Objects Learning: 25 Learning Techniques for Accelerated Learning - Learn Faster by 300%! (Learning, Memory Techniques, Accelerated Learning, Memory, E Learning, ... Learning Techniques, Exam Preparation) Programming #8:C Programming Success in a Day & Android Programming In a Day! (C Programming, C++programming, C++ programming language, Android , Android Programming, Android Games) Programming #57: C++ Programming Professional Made Easy & Android Programming in a Day (C++ Programming, C++ Language, C++for beginners, C++, Programming ... Programming, Android, C, C Programming) DOS: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of DOS programming (DOS, ADA, Programming, DOS Programming, ADA ... LINUX, RPG, ADA Programming, Android, JAVA) ASP.NET: Programming success in a day: Beginners guide to fast, easy and efficient learning of ASP.NET programming (ASP.NET, ASP.NET Programming, ASP.NET ... ADA, Web Programming, Programming) C#: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of C# programming (C#, C# Programming, C++ Programming, C++, C, C Programming, C# Language, C# Guide, C# Coding) FORTRAN Programming success in a day:Beginners guide to fast, easy and efficient learning of FORTRAN programming (Fortran, Css, C++, C, C programming, ... Programming, MYSQL, SQL Programming) Prolog Programming; Success in a Day: Beginners Guide to Fast, Easy and Efficient Learning of Prolog Programming (Prolog, Prolog Programming, Prolog Logic, ... Programming, Programming Code, Java) R Programming: Learn R Programming In A DAY! - The Ultimate Crash Course to Learning the Basics of R Programming Language In No Time (R, R Programming, ... Course, R Programming Development Book 1) Parallel Programming: Success in a Day: Beginners' Guide to Fast, Easy, and Efficient Learning of Parallel Programming (Parallel Programming, Programming, ... C++ Programming, Multiprocessor, MPI) Programming #45: Python Programming Professional Made Easy & Android Programming In a Day! (Python Programming, Python Language, Python for beginners, ... Programming Languages, Android Programming) Learn: Cognitive Psychology - How to Learn, Any Skill or Subject in 21 Days! (Learn, Learning Disability, Learning Games, Learning Techniques, Learning ... Learning, Cognitive Science, Study) VBScript: Programming Success in a Day: Beginner's Guide to Fast, Easy and Efficient Learning of VBScript Programming (VBScript, ADA, ASP.NET, C#, ADA ... ASP.NET Programming, Programming, C++, C) XML Programming Success in a Day: Beginner's Guide to Fast, Easy, and Efficient Learning of XML Programming (XML, XML Programming, Programming, XML Guide, ... XSL, DTD's, Schemas, HTML5, JavaScript) Programming: Computer Programming for Beginners: Learn the Basics of Java, SQL & C++ - 3. Edition (Coding, C Programming, Java Programming, SQL Programming, JavaScript, Python, PHP) Raspberry Pi 2: Raspberry Pi 2 Programming Made Easy (Raspberry Pi, Android Programming, Programming, Linux, Unix, C Programming, C+ Programming) Android: Programming in a Day! The Power Guide for Beginners In Android App Programming (Android, Android Programming, App Development, Android App Development, ... App Programming, Rails, Ruby Programming)