u/sordinain r/haskell • Recommends
Compose :: Melbourne 2017 - Andrew McCluskey - Your first Haskell app
#haskell#functionalprogramming
2.9K subscribers • 28 videos on Hallway
Beginner. No background in the topic needed.
4.2K views9 years ago1 recommendation
Andrew McCluskey guides beginners through the transition from learning Haskell syntax to building and structuring their first real-world application.
composeconference.org/2017-melbourne/speaker-andrew-mccluske… When learning a new programming language there is almost always a leap from learning to applying your knowledge. This leap can be quite large when learning Haskell for a number of reasons. One reason is the dramatic difference between Haskell's style of programming compared to more common imperative languages that many learners are more familiar with. As a consequence, a difficulty for those new to Haskell is identifying when and how to apply the concepts they've learned when writing an application. Another is navigating the Haskell ecosystem; including finding packages and understanding how they work. Finally, some newcomers may delay writing their first application, believing they need to be comfortable with more advanced concepts before they can successfully write useful software. This is not the case. While these abstractions are useful, many of Haskell's benefits can be enjoyed while sticking to its more basic abstractions. By referring to a simple example application, we'll demonstrate how and when to apply some core techniques and abstractions, and alleviate the burden of starting an app from scratch. We'll cover a number of data types, type classes, and techniques, including: * Effectively using algebraic data types to more precisely model the problem * Using applicative parsers to read configuration from the command line or files * Using the Monoid type class to merge layers of configuration. e.g. user values merged with defaults * Using Maybe in place of null or exceptions to handle missing/optional data * Using Either in place of exceptions or return codes to handle failures * Using the Monad type class to sequence computations in a particular context, such as IO About Andrew McCluskey Andrew is a functional programming engineer at Data61. Earlier in his career he worked across a range of domains using conventional imperative programming languages, growing more and more frustrated with the difficulties of reasoning in a stateful and often untyped world. After hearing the claims that functional programming offered solutions to these problems, he embarked on learning Clojure - having fond memories of his first year programming course in Scheme. Convinced that FP was a good choice, but being burned by a lack of types, Andrew then switched his focus to Haskell and hasn't looked back since.What people say. Recommended as a helpful guide for beginners looking to build their first practical Haskell application.
u/sordinain r/haskell • Recommends