ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Clojure in Action, 2nd Edition

دانلود کتاب Clojure in Action، ویرایش دوم

Clojure in Action, 2nd Edition

مشخصات کتاب

Clojure in Action, 2nd Edition

ویرایش:  
نویسندگان:   
سری:  
ISBN (شابک) : 9781617291524 
ناشر: Manning 
سال نشر: 2015 
تعداد صفحات: 338 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 5 مگابایت 

قیمت کتاب (تومان) : 48,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 12


در صورت تبدیل فایل کتاب Clojure in Action, 2nd Edition به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب Clojure in Action، ویرایش دوم نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب Clojure in Action، ویرایش دوم

خلاصه یک نسخه کاملاً اصلاح شده که ویژگی‌های جدید موجود در Clojure 1.6 را پوشش می‌دهد. خرید کتاب چاپی شامل یک کتاب الکترونیکی رایگان در قالب‌های PDF، Kindle و ePub از انتشارات منینگ است. درباره فناوری Clojure یک Lisp مدرن برای JVM است. دارای نقاط قوتی است که شما انتظار دارید: توابع درجه یک، ماکروها و سبک برنامه نویسی تمیز Lisp. این برنامه از برنامه نویسی تابعی پشتیبانی می کند و آن را برای برنامه نویسی همزمان و ایجاد زبان های خاص دامنه ایده آل می کند. Clojure به شما امکان می‌دهد مشکلات سخت‌تر را حل کنید، تغییرات سریع‌تری ایجاد کنید و در نهایت با یک پایه کد کوچک‌تر برسید. جای تعجب نیست که داستان های موفقیت زیادی در Clojure وجود دارد. درباره کتاب Clojure in Action، نسخه دوم نسخه توسعه یافته و بهبود یافته ای است که برای پوشش ویژگی های جدید Clojure 1.6 به روز شده است. این کتاب به شما معرفی سریعی از زبان Clojure می دهد و از نظریه انتزاعی به مثال های عملی می رسد. شما با یادگیری نحوه استفاده از Clojure به عنوان یک زبان همه منظوره شروع خواهید کرد. در مرحله بعد، شما مدل همزمانی کارآمد Clojure را بر اساس مفهوم پایگاه داده حافظه تراکنشی نرم افزار (STM) بررسی خواهید کرد. از طریق Clojure DSLهایی که می توانند روی JVM اجرا شوند، سطح جدیدی از بهره وری به دست خواهید آورد. در طول مسیر، نکات، ترفندها و تکنیک های بی شماری برای نوشتن کدهای کوچکتر، ایمن تر و سریعتر خواهید آموخت. چه چیزی در داخل است مبانی برنامه نویسی کاربردی فرابرنامه نویسی با ماکروهای Clojure تعامل با Java Covers Clojure 1.6 درباره Reader فرض می کند که خوانندگان با زبان برنامه نویسی مانند C، جاوا، روبی یا پایتون آشنا هستند. فهرست مطالب معرفی عناصر Clojure Clojure: ساختارهای داده و توابع بلوک‌های سازنده چندشکلی چند روشی Clojure کاوش وضعیت interop Clojure و Java و جهان همزمان در حال تکامل Clojure از طریق ماکروها بیشتر در مورد پروتکل‌های برنامه‌نویسی کاربردی، رکوردها و انواع توسعه مبتنی بر آزمایش و ماکروهای بیشتر و DSL بیشتر


توضیحاتی درمورد کتاب به خارجی

Summary A fully revised edition that covers the new features available in Clojure 1.6. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Clojure is a modern Lisp for the JVM. It has the strengths you expect: first-class functions, macros, and Lisp\'s clean programming style. It supports functional programming, making it ideal for concurrent programming and for creating domain-specific languages. Clojure lets you solve harder problems, make faster changes, and end up with a smaller code base. It\'s no wonder that there are so many Clojure success stories. About the Book Clojure in Action, Second Edition is an expanded and improved version that\'s been updated to cover the new features of Clojure 1.6. The book gives you a rapid introduction to the Clojure language, moving from abstract theory to practical examples. You\'ll start by learning how to use Clojure as a general-purpose language. Next, you\'ll explore Clojure\'s efficient concurrency model, based on the database concept of Software Transactional Memory (STM). You\'ll gain a new level of productivity through Clojure DSLs that can run on the JVM. Along the way, you\'ll learn countless tips, tricks, and techniques for writing smaller, safer, and faster code. What\'s Inside Functional programming basics Metaprogramming with Clojure\'s macros Interoperating with Java Covers Clojure 1.6 About the Reader Assumes readers are familiar with a programming language like C, Java, Ruby, or Python. Table of Contents Introducing Clojure Clojure elements: Data structures and functions Building blocks of Clojure Multimethod polymorphism Exploring Clojure and Java interop State and the concurrent world Evolving Clojure through macros More on functional programming Protocols, records, and types Test-driven development and more More macros and DSL



فهرست مطالب

Front cover
Title Page
Copyright
contents
preface to the second edition
preface to the first edition
acknowledgments
about this book
	How to use this book
	Roadmap
	Code conventions and downloads
	Author Online
	About the cover illustration
1 Introducing Clojure
	1.1 Clojure: What and why?
		1.1.1 Clojure: A modern Lisp
		1.1.2 Clojure: Pragmatic functional programming
		1.1.3 Clojure on the JVM
	1.2 Language basics
		1.2.1 Lisp syntax
		1.2.2 Parentheses
	1.3 Host interoperation: A JVM crash course
		1.3.1 Java types, classes, and objects
		1.3.2 The dot and new operators
		1.3.3 Threads and concurrency
	1.4 Summary
2 Clojure elements: Data structures and functions
	2.1 Coding at the REPL
		2.1.1 Clojure REPL
		2.1.2 “Hello, world!”
		2.1.3 Looking up documentation using doc, find-doc, and apropos
		2.1.4 A few more points on Clojure syntax
	2.2 Clojure data structures
		2.2.1 nil, truth, and falsehood
		2.2.2 Characters and strings
		2.2.3 Clojure numbers
		2.2.4 Symbols and keywords
		2.2.5 Lists
		2.2.6 Vectors
		2.2.7 Maps
		2.2.8 Sequences
	2.3 Program structure
		2.3.1 Functions
		2.3.2 The let form
		2.3.3 Side effects with do
		2.3.4 Reader macros
	2.4 Program flow
		2.4.1 Conditionals
		2.4.2 Logical functions
		2.4.3 Functional iteration
		2.4.4 Threading macros
	2.5 Summary
3 Building blocks of Clojure
	3.1 Metadata
		3.1.1 Java type hints
		3.1.2 Java primitive and array types
	3.2 Java exceptions: try and throw
	3.3 Functions
		3.3.1 Defining functions
		3.3.2 Calling functions
		3.3.3 Higher-order functions
		3.3.4 Writing higher-order functions
		3.3.5 Anonymous functions
		3.3.6 Keywords and symbols
	3.4 Scope
		3.4.1 Vars and binding
		3.4.2 The let form revisited
		3.4.3 Lexical closures
	3.5 Namespaces
		3.5.1 ns macro
		3.5.2 Working with namespaces
	3.6 Destructuring
		3.6.1 Vector bindings
		3.6.2 Map bindings
	3.7 Reader literals
	3.8 Summary
4 Multimethod polymorphism
	4.1 Polymorphism and its types
		4.1.1 Parametric polymorphism
		4.1.2 Ad hoc polymorphism
		4.1.3 Subtype polymorphism
	4.2 Polymorphism using multimethods
		4.2.1 Life without multimethods
		4.2.2 Ad hoc polymorphism using multimethods
		4.2.3 Multiple dispatch
		4.2.4 Subtype polymorphism using multimethods
	4.3 Summary
5 Exploring Clojure and Java interop
	5.1 Calling Java from Clojure
		5.1.1 Importing Java classes into Clojure
		5.1.2 Creating instances
		5.1.3 Accessing methods and fields
		5.1.4 Macros and the dot special form
		5.1.5 Helpful Clojure macros for working with Java
		5.1.6 Implementing interfaces and extending classes
	5.2 Compiling Clojure code to Java bytecode
		5.2.1 Example: A tale of two calculators
		5.2.2 Creating Java classes and interfaces using gen-class and gen-interface
	5.3 Calling Clojure from Java
	5.4 Summary
6 State and the concurrent world
	6.1 The problem with state
		6.1.1 Common problems with shared state
		6.1.2 Traditional solution
	6.2 Separating identities and values
		6.2.1 Immutable values
		6.2.2 Objects and time
		6.2.3 Immutability and concurrency
	6.3 Clojure’s way
		6.3.1 Immutability and performance
		6.3.2 Managed references
	6.4 Refs
		6.4.1 Creating refs
		6.4.2 Mutating refs
		6.4.3 Software transactional memory
	6.5 Agents
		6.5.1 Creating agents
		6.5.2 Mutating agents
		6.5.3 Working with agents
		6.5.4 Side effects in STM transactions
	6.6 Atoms
		6.6.1 Creating atoms
		6.6.2 Mutating atoms
	6.7 Vars
		6.7.1 Creating vars and root bindings
		6.7.2 Var bindings
	6.8 State and its unified access model
		6.8.1 Creating
		6.8.2 Reading
		6.8.3 Mutation
		6.8.4 Transactions
		6.8.5 Watching for mutation
	6.9 Deciding which reference type to use
	6.10 Futures and promises
		6.10.1 Futures
		6.10.2 Promises
	6.11 Summary
7 Evolving Clojure through macros
	7.1 Macro basics
		7.1.1 Textual substitution
		7.1.2 The unless example
		7.1.3 Macro templates
		7.1.4 Recap: Why macros?
	7.2 Macros from within Clojure
		7.2.1 comment
		7.2.2 declare
		7.2.3 defonce
		7.2.4 and
		7.2.5 time
	7.3 Writing your own macros
		7.3.1 infix
		7.3.2 randomly
		7.3.3 defwebmethod
		7.3.4 defnn
		7.3.5 assert-true
	7.4 Summary
8 More on functional programming
	8.1 Using higher-order functions
		8.1.1 Collecting results of functions
		8.1.2 Reducing lists of things
		8.1.3 Filtering lists of things
	8.2 Partial application
		8.2.1 Adapting functions
		8.2.2 Defining functions
	8.3 Closures
		8.3.1 Free variables and closures
		8.3.2 Delayed computation and closures
		8.3.3 Closures and objects
		8.3.4 An object system for Clojure
	8.4 Summary
9 Protocols, records, and types
	9.1 The expression problem
		9.1.1 Setting up the example scenario
		9.1.2 A closer look at the expression problem and some potential solutions
		9.1.3 Clojure’s multimethods solution
	9.2 Examining the operations side of the expression problem
		9.2.1 def-modus-operandi
		9.2.2 detail-modus-operandi
		9.2.3 Tracking your modus operandi
		9.2.4 Error handling and trouble spots in this solution
	9.3 Examining the data types side of the expression problem with protocols
		9.3.1 defprotocol and extend-protocol
		9.3.2 Defining data types with deftype, defrecord, and reify
	9.4 Summary
10 Test-driven development and more
	10.1 Getting started with TDD: Manipulating dates in strings
		10.1.1 First assertion
		10.1.2 month-from and year-from
		10.1.3 as-string
		10.1.4 Incrementing and decrementing
		10.1.5 Refactor mercilessly
	10.2 Improving tests through mocking and stubbing
		10.2.1 Example: Expense finders
		10.2.2 Stubbing
		10.2.3 Mocking
		10.2.4 Mocks versus stubs
		10.2.5 Managing stubbing and mocking state
	10.3 Organizing tests
		10.3.1 The testing macro
		10.3.2 The are macro
	10.4 Summary
11 More macros and DSLs
	11.1 A quick review of macros
	11.2 Anaphoric macros
		11.2.1 The anaphoric if
		11.2.2 The thread-it macro
	11.3 Shifting computation to compile time
		11.3.1 Example: Rotation ciphers without macros
		11.3.2 Making the compiler work harder
	11.4 Macro-generating macros
		11.4.1 Example template
		11.4.2 Implementing make-synonym
		11.4.3 Why macro-generating macros
	11.5 Domain-specific languages
		11.5.1 DSL-driven design
		11.5.2 User classification
	11.6 Summary
Conclusion
Appendix—Installing Clojure
	A.1 Try Clojure
	A.2 Clojure.jar
	A.3 Leiningen
		A.3.1 lein tasks
		A.3.2 lein repl
		A.3.3 Adding dependencies to a Leiningen project
index
	Symbols
	A
	B
	C
	D
	E
	F
	G
	H
	I
	J
	K
	L
	M
	N
	O
	P
	Q
	R
	S
	T
	U
	V
	W
	X
Back cover




نظرات کاربران