Introducing
The Slant team built an AI & it’s awesome
Find the best product instantly
Add to Chrome
Add to Edge
Add to Firefox
Add to Opera
Add to Brave
Add to Safari
Try it now
4.7 star rating
0
What is the best alternative to Real World Haskell?
Ad
Ad
exercism.org
All
4
Experiences
Pros
2
Cons
1
Specs
Top
Pro
Human review and feedback
Rather than merely test for code correctness, Exercism uses peer review to improve general programming techniques. Users are encouraged to comment on others' solutions, and refine their own based on feedback.
See More
Top
Con
Custom commandline client
Exercism requires using a CLI utility to fetch and submit exercises. This is inconvenient compared to web-only alternatives, and poses an additional barrier to entry for some users.
See More
Top
Pro
Practice with production tools
Unlike many code practice websites, Exercism requires the user to develop and test entirely offline, submitting only the finished code. This promotes familiarity with essential tools and workflow, not just the bare language.
See More
Specs
Languages:
Bash, C, C++, C#, Clojure, Dart, Elixir, Erlang, Go, Java, JavaScript, Kotlin, Python, Ruby, Rust,TypeScript
Features:
Exercises
Hide
Get it
here
178
22
The Little Schemer
All
3
Experiences
Pros
2
Cons
1
Top
Pro
Aids in teaching programming logic as well as Scheme
"The Little Schemer" teaches Scheme while also challenging the readers thought process in order to improve overall programming abilities.
See More
Top
Con
Lack of detail for more difficult concepts
"The Little Schemer" does touch on more advanced Scheme concepts, however includes only a weak explanation of them. For more advanced topics, the sequel "The Seasoned Schemer", is required.
See More
Top
Pro
Creative and humorous teaching style
The authors write in a humorous and witty style that keeps the readers attention throughout the book.
See More
Hide
Get it
here
7
0
Structure and Intepretation of Computer Programs
All
3
Experiences
Pros
3
Top
Pro
Knowledge can be applied to any language
This isn't a book you'll glean direct practical tidbits out of, an introduction to not only functional programming but how to think in a paradigm outside the usual way C*/Python/Ruby/Java/etc... are coded. Even if you wind up never working in Scheme or any other primarily functional language, the tactics and thought processes you'll learn here will apply to any currently-evolving language to a greater or lesser degree. You'll be able to map your thought process into the paradigm that works best for your current situation and not just be forced into a limited set of idioms that causes unnecessary boilerplate and clunky code mangling.
See More
Top
Pro
Teaches very important programming concepts
Like closures and encapsulation without language support of objects.
See More
Top
Pro
Very good for absolute beginners
This book gives a great insight about immutable and mutable state (with pros and cons), typisation, FP, OOP, and many other things in a very beginner-friendly manner
See More
Hide
Get it
here
49
3
Professor Frisby's Mostly Adequate Guide to Functional Programming
All
5
Experiences
Pros
4
Cons
1
Top
Pro
Covers a wider range of topics than many books
See More
Top
Con
Shortage of real world examples
There are very few non-trivial examples given in the book.
See More
Top
Pro
Free
It's available free on Github.
See More
Top
Pro
Can submit pull requests to suggest improvements
You can submit issues to suggest improvements, or submit pull requests. Thanks to it being open source, it's constantly being improved and updated.
See More
Top
Pro
Uses JavaScript
JavaScript is popular, ubiquitous, and has the necessary power to teach core concepts.
See More
Hide
Get it
here
3
0
Haskell From First Principles
All
5
Experiences
Pros
4
Cons
1
Top
Pro
Up-to-date content
A lot of other resources are outdated and incomplete.
See More
Top
Con
Rather expensive
The book is prohibitively expensive, especially for a beginner who might only be investigating the language.
See More
Top
Pro
extremely thorough
The book really doesn’t skip important details.
See More
Top
Pro
friendly, conversational tone
See More
Top
Pro
uses spaced repetition
The book is written so that you return to previously encountered material at the right time, which helps your memory lock concepts in.
See More
Hide
$59
2
0
Haskell
All
26
Experiences
Pros
13
Cons
12
Specs
Top
Pro
Highly transferable concepts
Haskell's referential transparency, consistency, mathematics-oriented culture, and heavy amount of abstraction encourage problem solving at a very high level. The fact that this is all built upon little other than function application means that not only is the thought process, but even concrete solutions are very transferable to any other language. In fact, in Haskell, it's quite common for a solution to simply be written as an interpreter that can then generate code in some other language. Many other languages employ language-specific features, or work around a lack of features with heavy-handed design patterns that discourage abstraction, meaning that a lot of what is learned, and a lot of code that is needed to solve a particular problem just isn't very applicable to any other language's ecosystem.
See More
Top
Con
Language extensions lead to unfamiliar code
Haskell's language extensions, while making the language incredibly flexible for experienced users, makes a lot of code incredibly unfamiliar for beginners. Some pragmas, like NoMonomorphismRestriction, have effects that seem completely transparent in code, leading beginners to wonder why it's there. Others, like ViewPatterns, and particularly TemplateHaskell, create completely new syntax rules that render code incomprehensible to beginners expecting vanilla function application.
See More
Top
Pro
Forces you to learn pure functional programming
It is pure and does not mix other programming paradigms into the language. This forces you to learn functional programming in its most pure form. You avoid falling back on old habits and learn an entirely new way to program.
See More
Top
Con
Difficult learning curve
Haskell lends itself well to powerful abstractions - the result is that even basic, commonly used libraries, while easy to use, are implemened using a vocabularly that requires a lot of backround in abstract mathematics to understand. Even a concept as simple as "combine A and B" is often, both in code and in tutorials, described in terms of confusing and discouraging terms like "monad", "magma", "monoid", "groupoid", and "ring". This also occasionally bears its ugly head in the form of complicated error messages from type inference.
See More
Top
Pro
Open source
All Haskell implementations are completely free and open source.
See More
Top
Con
Package manager is unstable & lacking features
Cabal (There are other choices but this is the most popular) can not uninstall a package. Also working at a few locations it is difficult to have the same environment for each one be the same.
See More
Top
Pro
Mathematical consistency
As Haskell lends itself exceedingly well to abstraction, and borrows heavily from the culture of pure mathematics, it means that a lot more code conforms to very high-level abstractions. You can expect code from vastly different libraries to follow the same rules, and to be incredibly self-consistent. It's not uncommon to find that a parser library works the same way as a string library, which works the same way as a window manager library. This often means that getting familiar and productive with new libraries is often much easier than in other languages.
See More
Top
Con
You have to learn more than just FP
Haskell is not only a functional language but also a lazy, and statically typed one. Not only that but it's almost necessary to learn about monads before you can do anything useful.
See More
Top
Pro
Referentially transparent
Haskell's Purely Functional approach means that code is referentially transparent. This means that to read a function, one only needs to know its arguments. Code works the same way that expressions work in Algebra class. There's no need to read the whole source code to determine if there's some subtle reference to some mutable state, and no worries about someone writing a "getter" that also mutates the object it's called on. Functions are all directly testable in the REPL, and there's no need to remember to call methods in a certain order to properly initialize an object. No breakage of encapsulation, and no leaky abstractions.
See More
Top
Con
Symbols everywhere
Haskell allows users to define their own infix operators, even with their own precedence. The result is that some code is filled with foreign looking operators that are assumed to be special-case syntax. Even for programmers who know they're just functions, operators that change infix precedence can potentially break expectations of how an expression is evaluated, if not used with care.
See More
Top
Pro
Hand-writeable concise syntax
Conciseness of Haskell lets us to write the expression on the whiteboard or paper and discuss with others easily. This is a strong benefit to learn FP over other languages.
See More
Top
Con
Obscure ugly notation
0 = 1 Using "=" like this: <code> -- Using recursion (with pattern matching) factorial 0 = 1 factorial n = n * factorial (n - 1) </code> Example from https://en.wikipedia.org/wiki/Haskell_(programming_language) is quite simply annoying aesthetics.
See More
Top
Pro
Very few language constructs
The base language relies primarily on function application, with a very small amount of special-case syntax. Once you know the rules for function application, you know most of the language.
See More
Top
Con
Documentation for most packages is short and lacking
A few Haskell packages are well documented but this is the exception, not the rule. Most of the time a list of function signatures is what passes for documentation.
See More
Top
Pro
Quick feedback
It's often said that, in Haskell, if it compiles, it works. This short feedback loop can speed up learning process, by making it clear exactly when and where mistakes are made.
See More
Top
Con
Too academic, hard to find "real world" code examples
See More
Top
Pro
Functions curry automatically
Every function that expects more than one arguments is basically a function that returns a partially applied function. This is well-suited to function composition, elegance, and concision.
See More
Top
Con
You need some time to start seeing results
Haskell's static typing, while helpful when building a project, can be positively frustrating for beginners. Quick feedback for errors means delaying the dopamine hit of code actually running. While in some languages, a beginner's first experience may be their code printing "Hello World" and then crashing, in Haskell, similar code would more likely be met with an incomprehensible type error.
See More
Top
Pro
Easy to read
Haskell is a very terse language, particularly due to its type inference. This means there's nothing to distract from the intent of the code, making it very readable. This is in sharp contrast to languages like Java, where skimming code requires learning which details can be ignored. Haskell's terseness also lends itself to very clear inline examples in textbooks, and makes it a pleasure to read through code even on a cellphone screen.
See More
Top
Con
Lazily evaluated
Haskell's lazy evaluation implies a level of indirection - you're not passing a value, you're passing a thunk. This is often difficult to grasp not just for beginners, but for experienced programmers coming from strictly evaluated languages. This also means that, since for many, strict evaluation is their first instinct, initial expectations of a function's performance and complexity are often broken.
See More
Top
Pro
Popular in teaching
Haskell is really popular in universities and academia as a tool to teach programming. A lot of books for people who don't know programming are written around Haskell. This means that there are a lot of resources for beginners in programming with which to learn Haskell and functional programming concepts.
See More
Top
Con
Only pure functional programming
Not proper functional programming but a subset of the style called pure functional programming.
See More
Top
Pro
Easy syntax for people with a STEM degree
Since the basic syntax is very similar to mathematics, Haskell syntax should be easy for people who have taken higher math courses since they would be used to the symbols used in maths.
See More
Top
Con
Curried type signatures obfuscate what were the in and out types originally
See More
Top
Pro
Powerful categorical abstractions
Makes categorical higher order abstractions easy to use and natural to the language.
See More
Specs
Site:
https://www.haskell.org/
Paradigm:
functional
Type System:
static
Hide
See All
Experiences
Get it
here
406
191
Execution in the Kingdom of Nouns
All
6
Experiences
Pros
4
Cons
2
Top
Pro
Short enough to read in a reasonable amount of time
It is a single blog post entry that doesn't take all that long to read.
See More
Top
Con
No real code
There are no real code examples given to demonstrate the points.
See More
Top
Pro
Funny
The post is written as a humorous and engaging story about "Evil King Java".
See More
Top
Con
Argues FP by bashing OO
See More
Top
Pro
Non-academic
See More
Top
Pro
An easy to follow story form
See More
Hide
Get it
here
0
1
Built By the Slant team
Find the best product instantly.
4.7 star rating
Add to Chrome
Add to Edge
Add to Firefox
Add to Opera
Add to Brave
Add to Safari
Try it now - it's free
{}
undefined
url next
price drop