Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM

3,05 valoración promedio
( 83 valoraciones por Goodreads )
 
9781937785475: Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM

Solve real-life programming problems with a fraction of the code that pure object-oriented programming requires. Use Scala and Clojure to solve in-depth problems with two sets of patterns: object-oriented patterns that become more concise with functional programming, and natively functional patterns. Your code will be more declarative, with fewer bugs and lower maintenance costs.

Functional languages have their own patterns that enable you to solve problems with less code than object-oriented programming alone. This book introduces you, the experienced Java programmer, to Scala and Clojure: practical, production-quality languages that run on the JVM and interoperate with existing Java. By using both the statically typed, type-inferred Scala and the dynamically typed, modern Lisp Clojure, you'll gain a broad understanding of functional programming.

For each pattern, you'll first see the traditional object-oriented solution, and then dig into the functional replacements in both Scala and Clojure. These patterns are common in the functional world and deserve to become part of your problem-solving toolkit. On the object-oriented side, you'll see many common patterns, such as Command, Strategy, and Null Object. On the functional side, you'll learn core functional patterns such as Memoization, Lazy Sequence, and Tail Recursion.

Each pattern helps you solve a common programming problem. Working through them gives you a set of patterns you can use to solve problems you come across while writing programs. Finally, you'll learn how to work your existing Java code into new Scala or Clojure projects. You can start off small, adding functional code little by little, so you can complement your existing knowledge with Scala and Clojure as these languages gain popularity on the JVM.

What You Need

Clojure 1.5 and Scala 2.10.Optionally, Eclipse with plugins.

"Sinopsis" puede pertenecer a otra edición de este libro.

Review:

Q&A with Michael Bevilacqua-Linn, author of "Functional Programming Patterns in Scala and Clojure"

Q. Why did you write "Functional Programming Patterns"?

A. Languages with a functional flavor are getting more and more mainstream, and I wanted to write something that would help folks with a lot of traditional OO pattern knowledge start to make the transition.

Q. I don't know Scala or Clojure. How hard would it be for me to understand the examples in the book?

A. This book is written for programmers who are new to Scala and Clojure, but who have significant experience with Java and object-oriented patterns. One of its goals is to help ease experienced object-oriented programmers into a more functional style.

Q. What can I do with functional patterns that I couldn't do before?

A. It's not so much what you can do, as what you can do better! Functional programming, and the patterns that go along with it, tends to be more declarative than imperative programming, so you can solve problems with code that's both more straightforward and shorter. The functional focus on immutable data reduces bugs in large programs, especially ones involving concurrency.

Q. Functional programming has no place in the object-oriented world, does it?

A. While object-oriented programming and functional programming are often seen as opposite paradigms, the truth is a bit more complex. Even Java is getting more of a functional style with Java 8's Lambdas. Scala explicitly blends object-oriented and functional styles. While Clojure is explicitly not object-oriented, it does borrow many good ideas from the object-oriented world, such as polymorphism and programming to interfaces.

Q. Which one should I use? Scala or Clojure? What are the differences and which would be easier to start with?

A. Scala tends to provide an easier on-ramp for object-oriented programmers, as they can start working with it in a mainly object-oriented style and transition to a more functional style as they gain more experience. Scala also has a sophisticated static type system, and blends object-oriented and functional programming together. Clojure, on the other hand, is a modern, practical Lisp and comes with the powerful macro system inherent to Lisps.

Both are excellent, general-purpose languages, but I have to confess that I prefer Clojure. I find that I can write clear, concise code it in much more easily than I can in any other language. However, knowing both will give you a very broad understanding of modern languages with a functional flavor.


5 Functional Programming Tips from Michael Bevilacqua-Linn, Author of “Functional Programming Patterns in Scala and Clojure”

  1. Look for opportunities to replace object-oriented patterns with simpler functional language features.
  2. Don't be afraid to create functions that return functions.
  3. Consider composing behaviors using higher order functions rather than building hierarchies.
  4. Reach for higher order functions over collections before recursion.
  5. You often don't need mutability, even when you think you do! Try to find a higher order function that helps you transform an immutable data structure into a new, immutable data structure rather than modifying it in place.

About the Author:

Michael Bevilacqua-Linn has been programming computers ever since he dragged an Apple IIGS into his fifth grade class to explain loops and variables to pre-teenagers. He works for Comcast, where he builds distributed systems that power infrastructure for their next generation services. In his spare time he likes rock climbing and good beer, though not at the same time. He blogs at "mblinn.com":http://mblinn.com/.

"Sobre este título" puede pertenecer a otra edición de este libro.

Comprar nuevo Ver libro

Gastos de envío: GRATIS
De Reino Unido a Estados Unidos de America

Destinos, gastos y plazos de envío

Añadir al carrito

Los mejores resultados en AbeBooks

1.

Michael Bevilacqua-Linn
Editorial: The Pragmatic Programmers, United States (2014)
ISBN 10: 1937785475 ISBN 13: 9781937785475
Nuevos Paperback Cantidad: 1
Librería
The Book Depository
(London, Reino Unido)
Valoración
[?]

Descripción The Pragmatic Programmers, United States, 2014. Paperback. Estado de conservación: New. Language: English . Brand New Book. Solve real-life programming problems with a fraction of the code that pure object-oriented programming requires. Use Scala and Clojure to solve in-depth problems with two sets of patterns: object-oriented patterns that become more concise with functional programming, and natively functional patterns. Your code will be more declarative, with fewer bugs and lower maintenance costs. Functional languages have their own patterns that enable you to solve problems with less code than object-oriented programming alone. This book introduces you, the experienced Java programmer, to Scala and Clojure: practical, production-quality languages that run on the JVM and interoperate with existing Java. By using both the statically typed, type-inferred Scala and the dynamically typed, modern Lisp Clojure, you ll gain a broad understanding of functional programming. For each pattern, you ll first see the traditional object-oriented solution, and then dig into the functional replacements in both Scala and Clojure. These patterns are common in the functional world and deserve to become part of your problem-solving toolkit. On the object-oriented side, you ll see many common patterns, such as Command, Strategy, and Null Object. On the functional side, you ll learn core functional patterns such as Memoization, Lazy Sequence, and Tail Recursion. Each pattern helps you solve a common programming problem. Working through them gives you a set of patterns you can use to solve problems you come across while writing programs. Finally, you ll learn how to work your existing Java code into new Scala or Clojure projects. You can start off small, adding functional code little by little, so you can complement your existing knowledge with Scala and Clojure as these languages gain popularity on the JVM. Nº de ref. de la librería AAH9781937785475

Más información sobre esta librería | Hacer una pregunta a la librería

Comprar nuevo
EUR 22,62
Convertir moneda

Añadir al carrito

Gastos de envío: GRATIS
De Reino Unido a Estados Unidos de America
Destinos, gastos y plazos de envío

2.

Bevilacqua-Linn, Michael
Editorial: Pragmatic Bookshelf
ISBN 10: 1937785475 ISBN 13: 9781937785475
Nuevos PAPERBACK Cantidad: > 20
Librería
Mediaoutlet12345
(Springfield, VA, Estados Unidos de America)
Valoración
[?]

Descripción Pragmatic Bookshelf. PAPERBACK. Estado de conservación: New. 1937785475 *BRAND NEW* Ships Same Day or Next!. Nº de ref. de la librería SWATI2132560566

Más información sobre esta librería | Hacer una pregunta a la librería

Comprar nuevo
EUR 20,77
Convertir moneda

Añadir al carrito

Gastos de envío: EUR 3,40
A Estados Unidos de America
Destinos, gastos y plazos de envío

3.

Michael Bevilacqua-Linn
Editorial: The Pragmatic Programmers, United States (2014)
ISBN 10: 1937785475 ISBN 13: 9781937785475
Nuevos Paperback Cantidad: 1
Librería
The Book Depository US
(London, Reino Unido)
Valoración
[?]

Descripción The Pragmatic Programmers, United States, 2014. Paperback. Estado de conservación: New. Language: English . Brand New Book. Solve real-life programming problems with a fraction of the code that pure object-oriented programming requires. Use Scala and Clojure to solve in-depth problems with two sets of patterns: object-oriented patterns that become more concise with functional programming, and natively functional patterns. Your code will be more declarative, with fewer bugs and lower maintenance costs. Functional languages have their own patterns that enable you to solve problems with less code than object-oriented programming alone. This book introduces you, the experienced Java programmer, to Scala and Clojure: practical, production-quality languages that run on the JVM and interoperate with existing Java. By using both the statically typed, type-inferred Scala and the dynamically typed, modern Lisp Clojure, you ll gain a broad understanding of functional programming. For each pattern, you ll first see the traditional object-oriented solution, and then dig into the functional replacements in both Scala and Clojure. These patterns are common in the functional world and deserve to become part of your problem-solving toolkit. On the object-oriented side, you ll see many common patterns, such as Command, Strategy, and Null Object. On the functional side, you ll learn core functional patterns such as Memoization, Lazy Sequence, and Tail Recursion. Each pattern helps you solve a common programming problem. Working through them gives you a set of patterns you can use to solve problems you come across while writing programs. Finally, you ll learn how to work your existing Java code into new Scala or Clojure projects. You can start off small, adding functional code little by little, so you can complement your existing knowledge with Scala and Clojure as these languages gain popularity on the JVM. Nº de ref. de la librería AAH9781937785475

Más información sobre esta librería | Hacer una pregunta a la librería

Comprar nuevo
EUR 24,31
Convertir moneda

Añadir al carrito

Gastos de envío: GRATIS
De Reino Unido a Estados Unidos de America
Destinos, gastos y plazos de envío

4.

Michael Bevilacqua-Linn
Editorial: Pragmatic Bookshelf 2013-10-30 (2013)
ISBN 10: 1937785475 ISBN 13: 9781937785475
Nuevos Cantidad: 2
Librería
Chiron Media
(Wallingford, Reino Unido)
Valoración
[?]

Descripción Pragmatic Bookshelf 2013-10-30, 2013. Estado de conservación: New. Brand new book, sourced directly from publisher. Dispatch time is 24-48 hours from our warehouse. Book will be sent in robust, secure packaging to ensure it reaches you securely. Nº de ref. de la librería NU-GRD-05048245

Más información sobre esta librería | Hacer una pregunta a la librería

Comprar nuevo
EUR 22,34
Convertir moneda

Añadir al carrito

Gastos de envío: EUR 3,39
De Reino Unido a Estados Unidos de America
Destinos, gastos y plazos de envío

5.

Bevilacqua-Linn, Michael
Editorial: Pragmatic Bookshelf 11/2/2013 (2013)
ISBN 10: 1937785475 ISBN 13: 9781937785475
Nuevos Paperback or Softback Cantidad: 5
Librería
BargainBookStores
(Grand Rapids, MI, Estados Unidos de America)
Valoración
[?]

Descripción Pragmatic Bookshelf 11/2/2013, 2013. Paperback or Softback. Estado de conservación: New. Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the Jvm. Book. Nº de ref. de la librería BBS-9781937785475

Más información sobre esta librería | Hacer una pregunta a la librería

Comprar nuevo
EUR 26,45
Convertir moneda

Añadir al carrito

Gastos de envío: GRATIS
A Estados Unidos de America
Destinos, gastos y plazos de envío

6.

Bevilacqua-Linn, Michael
Editorial: Oand#8242;Reilly (2013)
ISBN 10: 1937785475 ISBN 13: 9781937785475
Nuevos Cantidad: 2
Librería
Books2Anywhere
(Fairford, GLOS, Reino Unido)
Valoración
[?]

Descripción Oand#8242;Reilly, 2013. PAP. Estado de conservación: New. New Book. Shipped from UK in 4 to 14 days. Established seller since 2000. Nº de ref. de la librería WO-9781937785475

Más información sobre esta librería | Hacer una pregunta a la librería

Comprar nuevo
EUR 17,17
Convertir moneda

Añadir al carrito

Gastos de envío: EUR 10,20
De Reino Unido a Estados Unidos de America
Destinos, gastos y plazos de envío

7.

Michael Bevilacqua-Linn
Editorial: Pragmatic Bookshelf
ISBN 10: 1937785475 ISBN 13: 9781937785475
Nuevos Paperback Cantidad: 1
Librería
THE SAINT BOOKSTORE
(Southport, Reino Unido)
Valoración
[?]

Descripción Pragmatic Bookshelf. Paperback. Estado de conservación: New. New copy - Usually dispatched within 2 working days. Nº de ref. de la librería B9781937785475

Más información sobre esta librería | Hacer una pregunta a la librería

Comprar nuevo
EUR 20,33
Convertir moneda

Añadir al carrito

Gastos de envío: EUR 7,87
De Reino Unido a Estados Unidos de America
Destinos, gastos y plazos de envío

8.

Michael Bevilacqua-linn
Editorial: The Pragmatic Bookshelf 2013-11-12, Dallas, Texas (2013)
ISBN 10: 1937785475 ISBN 13: 9781937785475
Nuevos paperback Cantidad: 10
Librería
Blackwell's
(Oxford, OX, Reino Unido)
Valoración
[?]

Descripción The Pragmatic Bookshelf 2013-11-12, Dallas, Texas, 2013. paperback. Estado de conservación: New. Nº de ref. de la librería 9781937785475

Más información sobre esta librería | Hacer una pregunta a la librería

Comprar nuevo
EUR 23,35
Convertir moneda

Añadir al carrito

Gastos de envío: EUR 6,80
De Reino Unido a Estados Unidos de America
Destinos, gastos y plazos de envío

9.

Michael Bevilacqua-Linn
ISBN 10: 1937785475 ISBN 13: 9781937785475
Nuevos Cantidad: 2
Librería
Speedy Hen LLC
(Sunrise, FL, Estados Unidos de America)
Valoración
[?]

Descripción Estado de conservación: New. Bookseller Inventory # ST1937785475. Nº de ref. de la librería ST1937785475

Más información sobre esta librería | Hacer una pregunta a la librería

Comprar nuevo
EUR 30,39
Convertir moneda

Añadir al carrito

Gastos de envío: GRATIS
A Estados Unidos de America
Destinos, gastos y plazos de envío

10.

Michael Bevilacqua-Linn
ISBN 10: 1937785475 ISBN 13: 9781937785475
Nuevos Paperback Cantidad: 2
Librería
Ria Christie Collections
(Uxbridge, Reino Unido)
Valoración
[?]

Descripción Paperback. Estado de conservación: New. Not Signed; Solve real-life programming problems with a fraction of the code that pure object-oriented programming requires. Use Scala and Clojure to solve in-depth problems with two sets of patterns: object-oriented patterns that become more concise with functional programming, and natively functional patterns. book. Nº de ref. de la librería ria9781937785475_rkm

Más información sobre esta librería | Hacer una pregunta a la librería

Comprar nuevo
EUR 27,93
Convertir moneda

Añadir al carrito

Gastos de envío: EUR 4,39
De Reino Unido a Estados Unidos de America
Destinos, gastos y plazos de envío

Existen otras copia(s) de este libro

Ver todos los resultados de su búsqueda