Haskell: The Ultimate Beginner's Guide to Learn Haskell Programming Step by Step

Haskell: The Ultimate Beginner's Guide to Learn Haskell Programming Step by Step

Haskell: The Ultimate Beginner's Guide to Learn Haskell Programming Step by Step
Автор: Alves Claudia
Дата выхода: 2020
Издательство: Independent publishing
Количество страниц: 215
Размер файла: 815.6 KB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Introduction....8

What Makes Haskell Special?....9

How is Haskell Used?....10

What do you need to start....13

Starting....14

Ready, Set, Go!....14

The first small functions....17

An introduction to the lists....20

Texas ranges....24

I'm an intensional list....26

Tuples....29

Chapter I....33

Types and type classes....33

Believe in the type....33

Type variables....36

Type classes step by step (1st part)....36

Chapter II....42

The syntax of functions....42

Pattern adjustment....42

Guardians, Guardians!....48

Where?....50

Let it be....52

Case expressions....54

Chapter III....56

Recursion....56

Hello recursion!....56

The impressive maximum....57

A few more recursive functions....58

Quicksort!....61

Thinking recursively....62

Chapter IV....64

Higher order functions....64

Currified functions....64

Higher order in your order....67

Associations and filters....70

Lambdas....75

Folds and origami....76

Application of functions with $....82

Composition of functions....83

Chapter V....86

Modules....86

Loading modules....86

Data.List....89

Data.Char....100

Data.Map....104

Data.Set....110

Creating our own modules....112

Chapter VI....117

Creating our own types and type classes....117

Introduction to algebraic data types....117

Registration syntax....121

Type parameters....123

Derived instances....127

Type synonyms....132

Recursive data structures....137

Type classes step by step (2nd part)....142

The Yes-No type class....148

The functor type class....150

Families and martial arts....155

Chapter VII....159

Input and output....160

Hello World!....160

Files and data streams....174

Command line parameters....189

Randomness....195

Byte strings....203

Exceptions....207

First, the Haskell programming language is not named after Eddie Haskell, the sneaky double-dealing neighbor kid in the ancient TV sitcom, Leave It To Beaver.Haskell is named after Haskell Brooks Curry, an American mathematician and logician. If you don't know, logicians create models to describe and define human reasoning, for example, problems in mathematics, computer science, and philosophy. Haskell’s main work was in combinatory logic, a notation designed to eliminate the need for variables in mathematical logic. Combinatory logic captures many key features of computation and, as a result, is useful in computer science. Haskell has three programming languages named after him: Haskell, Brooks, and Curry.Haskell the language is built around functions, useful blocks of code that do specific tasks. They are called and used only when needed.Another interesting feature of functional languages like Haskell: functions are treated as values like integers (numbers) and strings. You can add a function to another function the way you can add an integer to an integer, 1 + 1 or 35 + 53. Perhaps the best way to describe this quality is a spreadsheet: in a cell in the spreadsheet, you can add numbers as well as a combination of functions to work on numbers. For example, you might specify each number in cells 1-10 be added up as a sum. In Excel, at least, you also can use SUMIF to look for a pattern in cells 1-10 and, if the pattern is found, perform an action on any cells with the pattern.What Makes Haskell Special?Technically, Haskell is a general-purpose functional programming language with non-strict semantics and strong static typing. The primary control construct is the function. (Say that fast ten times!) Here's what it means:- Every language has a strategy to evaluate when to process the input arguments used in a call to a function. The simplest strategy is to evaluate the input arguments passed then run the function with the arguments. Non-strict semantics means the input arguments are not evaluated unless the arguments passed into the function are used to evaluate what is in the body of the function.- Programming languages have rules to assign properties — called a type — to the components of the language: variables, functions, expressions, and modules. A type is a general description of possible values the variable, function, expression, or module can store. Typing helps minimize bugs, for example, when a calculation uses a string ("house” or "cat”) instead of a number (2 or 3). Strong static typing evaluates the code before runtime, when the code is static and possibly as code is written.- The order in which statements, instructions and functions are evaluated and executed determines the results of any piece of code. Control constructs define the order of evaluation. Constructs use an initial keyword to flag the type of control structure used. Initial keywords might be "if” or "do” or "loop” while final keywords might be "end if” or "enddo” or "end loop”. Instead of a final keyword, Haskell uses indentation level (tabs) or curly brackets, or a mix, to indicate the end of a control structure.Perhaps what makes Haskell special is how coders have to think when they use the language. Functional programming languages work in very different ways than imperative languages where the coder manages many low-level details of what happens in their code and when. While it is true all languages have things in common, it’s also true languages are mostly functional or mostly imperative, the way people are mostly right handed or left handed. Except functional programming languages require a different way of thinking about software as you code.


Похожее:

Список отзывов:

Нет отзывов к книге.