47 Degrees joins forces with Xebia read more

Haskell Fundamentals

haskell

Haskell Fundamentals

This session has ended.

Haskell is a powerful Functional Programming language for building solid systems and ambitious projects.

This course has been designed to cover the fundamentals of the language and provide beginners with enough knowledge of its features to be successful in developing projects in Haskell. Learn the basic concepts, techniques, and tools of the language and change the way you think about programming.

Course content

Simple constructs
  • Simple definitions
  • Definitions using pattern matching and guards
  • Local bindings with let and where
  • Pattern matching over lists, recursion
  • Higher-order functions: maps and folds
  • Anonymous functions and partial application
Algebraic data types and type classes
  • Record types, and record syntax
  • Enumerations
  • General shape of algebraic data types
  • Differences from OOP modeling
  • Polymorphic types: lists, trees
  • First-order type classes: Eq, Ord, Show
  • Automatic derivation
Input/output
  • Concept of purity and tagging with IO
  • do blocks: pure vs. impure values
  • Basic console and file input/output
  • Working with callbacks (example using network-simple)
  • Small introduction to streaming
Functional error handling
  • Maybe and Either as polymorphic types
  • Combinators to work on the happy path
  • Dealing with errors in IO: exceptions
Higher-kinded type classes: Functor and Monad
  • Looking at commonalities in maps -> Functor
  • Notion of type constructors and higher-kinded clases
  • ‘Simulating’ stateful computations in Haskell
  • Looking at commonalities in bind -> Monad
  • Monadic utilities
Higher-kinded type classes: Applicative and Traversable
  • Applicative as generalizing map to n-ary functions
  • Applicative style programming
  • Generalizing map to mapM to traverse
Laziness
  • Execution model with thunks
  • Cyclic and infinite structures
  • Forcing execution to avoid leaks
  • IO, exceptions and laziness
Async, STM, streaming, resources
  • Spawning new computations with async
  • Concurrent execution, racing
  • Concurrent access with Software Transactional Memory
  • Managing single resources
  • Managing pools of resources
Combining Effects
  • Logging effects
  • Monadic classes and stacks
  • An algorithm with environment, state and logging
  • Integrating with IO effect

  • $1100
  • -50%

Enroll for $550Starts on March 8 at 9 AM CET

Company and Private Group Training

Trainers

Alejandro Serrano

Alejandro Serrano

Lead Software Engineer

Skills

  • Haskell
  • Simple Constructs
  • Type Classes
  • Input
  • Output

This Instructor-Led Course includes:

  • Two-day course led by a trainer
  • Maximum group size of 18 attendees
  • Access to our exercises platform in EduTools
  • Access to all materials
  • Certificate of Completion
  • Access to the Academy Slack

Requirements:

  • General Programming Skills in any Language

Upcoming Academy Events

Frequently Asked Questions

Is this course 100% online?

Yes

How do I register interest for a course with no start date or future training dates?

You can join the Academy newsletter to stay posted about upcoming courses and events.

What if I can’t find a course?

Please email your thoughts and suggestions to [email protected], and we’ll get back to you as soon as possible.

Will I receive accreditation for a course?

For any paid training courses, we intend to launch an accreditation process after the launch of Academy. If you take a paid training course before this time, we’ll make sure to send an accreditation when we’re ready.

What tools do I need to access 47 Degrees Academy content?

The only thing you need is a modern web browser and Internet connection. For training courses with code workshops or downloadable code samples, the course specifics will include the necessary tools and instructions to get going.

Will I earn university credit for completing any training?

No, at this time, the courses are not intended to replace university or other formal education courses. If you are an academic or training institution with an interest in partnering or licensing content from Academy, please get in touch at [email protected].

What languages will the training be given in?

English is the common language across 47 Degrees. If you have an interest in supporting other languages, please let us know at [email protected].

Is financial aid available for underrepresented or low-income groups?

Our industry is not diverse enough across many measures of representation. Nor is it easily accessible to many minorities or those in low-income scenarios. If you feel that you belong to an underrepresented minority or need help financially, please fill this form. We can apply a course voucher to your registered Academy account. The voucher can be redeemed against any paid course on a one-time basis. The voucher is non-transferable, non-refundable, and has no financial value.

What is the refund policy?

If you request a refund for a paid training course before taking it, we will refund your course fee during our next processing cycle. If you request a refund for a paid training course after starting or accessing it, please email us at [email protected]. Please refer to the full Terms and Conditions before requesting a refund. 47 Degrees reserves the right to refuse refunds.

Are these courses qualified for the FUNDAE (Fundación Tripartita)?

Part of the course cost is reimbursable for companies located in Spain, through Fundae ( formerly, Fundación Tripartita ). If this is your case, please contact us through [email protected] before enrolling in a course.

Do you have more questions? Contact us