
Discrete Mathematics and Functional Programming (2016) - tosh
https://cs.wheaton.edu/~tvandrun/dmfp/
======
hackermailman
I have this book, there's interesting chapters like defining arithmetic
recursively in SML. You can do this book without previous programming assuming
you have domain knowledge to install SML yourself.

There is no answers to the exercises in the book (some selected solutions on
the book homepage) but there is an appendix on various patterns and proof
techniques, which turned out to be all I needed as many of the exercises
you're just writing and checking a program. I assume there's no solutions
because the exercises are used for a course. I've always wondered why authors
don't have a self-study, Knuth like book with answers contained in it, then
sell a seperate instructor pack or something with private exercises to other
teachers.

~~~
bsg75
> You can do this book without previous programming assuming you have domain
> knowledge to install SML yourself.

Via [http://www.smlnj.org/](http://www.smlnj.org/) ?

~~~
hackermailman
Which is nowhere in the book, it's only referred to as "ML language" so
requires assumed domain knowledge such as (1)ML = Standard ML = SML/NJ (2)you
know what a REPL is and that it has different commands on different platforms
(Ctrl-Z to exit on Windows VS Ctrl-D in *nix) (3)you know commands to load
your larger .sml programs into the REPL and all the pitfalls like needing to
restart/empty the environment. In the course it's explained but not the book
[http://cs.wheaton.edu/~tvandrun/previous/spring19/cs243/ml.h...](http://cs.wheaton.edu/~tvandrun/previous/spring19/cs243/ml.html)

------
tsm
I took this course from the author (with a draft of the now-published
textbook—I'm in the acknowledgements for proofreading help) and thoroughly
enjoyed it. I hadn't thought I was much of a math guy, but it made set theory
and proofs and very basic modern algebra seem interesting and intuitive. Not
sure what else there is to say, but I'm happy to answer questions.

------
jadar
I can definitely vouch for the quality of this course and textbook. It's one
of the favorites in the CS program at Wheaton, and Dr. VanDrunen teaches the
course extremely well! The textbook does a good job of balancing the discrete
math parts with functional programming and relates the two in a way that helps
build your understanding of both.

------
MobileVet
While I appreciate that functional programming came out of the 80s... I am
surprised at the assertion that it isn’t ‘the hotness’ right now.

Maybe not in academia, but it sure is in the working world... and for good
reason imho.

~~~
dan-robertson
I think you are partly wrong on two counts here:

1\. Functional programming is popular in academia (particularly in PLT) but so
is just about every sort of programming. Lots of academics have carved out
niches and worked on them for long times.

2\. Your view of industry is somewhat biased. In the sort of tech companies
talked about on HN (eg Bay Area style companies), functional programming
methods are growing in popularity but it isn’t really functional programming
languages but certain functional programming techniques (in particular
mutating this as little as possible and in particular not all over the place).
Outside of such companies everyone still uses java, C, C++, C#, or JavaScript
with some people using react now which is somewhat popular.

~~~
0815test
> it isn’t really functional programming languages

Except that the goalposts keep moving all the time. It used to be the case
that having first-class functions was enough to be considered FP, but even
function objects in C++ or Java give you that. Then it was "no global
mutability" \- restrict mutation to a single well-defined "context" of
execution (via things like the ST monad, in a functional language like
Haskell) and make sure that anything that's shared more broadly is immutable.
But Rust has now codified that rule-of-thumb as well, and with it the
comprehensive use of such a "sharing or direct mutation, but not both"
pattern. It will be interesting to see how this evolves in the future.

~~~
lallysingh
SHH!! DON'T TELL THEM THE PLOT!

We have to let them think that they're in control... That their languages are
"just happening" to slowly evolve into shitty variants of Haskell.

~~~
krapht
And Haskell is just a shitty version of a language with real dependent types.
Seriously, language flaming is dumb.

------
ubrpwnzr
Why is that no CS professors ever use a single line of CSS on their pages.
This site would benefit from the following:

<style>

body{ font-family: "Calibri", Times, serif; margin: 75px; }

</style>

~~~
tvddmfp
Thanks for the tip. It's there now. (They don't teach CSS is CSCI phd programs
:) )

------
sridca
This one uses Haskell:

    
    
        Discrete Mathematics Using a Computer
    

[http://www.x.edu.uy/inet/Springer.pdf](http://www.x.edu.uy/inet/Springer.pdf)

[https://www.springer.com/us/book/9781846282416](https://www.springer.com/us/book/9781846282416)

