Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How much math do I need to become productive in Haskell?

Tags:

haskell

theory

I'm interested in learning Haskell on my own time (not through a course), but I suspect that my math background may be insufficient to grok important language concepts (TBD).

I have had a year of college calculus (single variable), but not discrete math or logic.

Am I going to run into gaps in my math?

like image 871
mseery Avatar asked Nov 20 '08 01:11

mseery


People also ask

How much math do you need for statistics?

In addition to this, a knowledge of calculus is necessary to prove results in statistics. Calculus One: In the first course of the calculus sequence you will learn to think carefully about functions, exploring topics such as limits and continuity.

Do you need to learn math to be successful?

However, success and ability in math is malleable, not fixed. Every student can be good at math with practice in a supportive learning environment. MYTH: You don't need to learn math to be successful—unless you are going to be an aerospace engineer. TRUTH: Everyone needs math and uses math.

What is the hardest math part?

1. Algebra: Algebra is a branch of mathematics that studies symbols and the rules that control how they are used.

How much should I study for math?

The general rule of thumb is that for each credit hour, you should spend 2-3 hours a week outside of class studying. For example, in a 3-credit class, you should spend 6-9 hours each week outside of class studying, and for a 4-credit class, you should spend 8-12 hours per week.


1 Answers

Why don't you just try it and see?

The design of Haskell has borrowed from mathematical ideas in areas like category theory (monads, arrows, transformers), but most Haskell programmers only understand what these are in relation to programming anyway :-)

You don't need any particularly advanced mathematics to learn Haskell, beyond things like being able to think of a function in the mathematical sense (like, "a map f: X -> Y" rather than as a "subroutine" that performs some actions), being able to think about higher order functions (e.g. to say that "'compose f g' is a function that at input x has the value f(g(x))") and so on. Haskell's notation is really clean, so that shouldn't be a problem either.

like image 114
ShreevatsaR Avatar answered Oct 07 '22 00:10

ShreevatsaR