
Humble Bundle Books: Functional Programming - ranit
https://www.humblebundle.com/books/functional-programming-books
======
tzs
Quite a few people seem to be under the impression that O'Reilly DRM-free ePub
and PDF books are no longer available, or maybe are only available now with
DRM.

Not so.

O'Reilly stopped selling those on its own site, but they still produce them
and sell them through retailers.

For example, ebooks.com carries them in both DRM-free ePub and DRM-free PDF
[1].

When searching at ebooks.com, you can add "Format:18" to your keywords to
search for DRM-free PDF, or "Format:17" to search for DRM-free ePub.

[1]
[https://www.ebooks.com/searchapp/searchresults.net?sortBy=So...](https://www.ebooks.com/searchapp/searchresults.net?sortBy=SortPublicationDate&sortOrder=desc&term=PublisherID:36485)

~~~
clumsysmurf
For O'Reilly PDFs, are these conversions from another format or sourced
directly from O'Reilly ?

~~~
vbernat
Dunno for ebooks.com (whose prices are significantly higher), but on Google
Playstore, ePub is clearly not sourced from O'Reilly. Line heights are not
even consistent.

------
icc97
Another great book amongst these is the Parallel and Concurrent Programming in
Haskell [0]. There's a great video lecture series from Bartosz Milewski that
goes through it [1].

[0]:
[http://shop.oreilly.com/product/0636920026365.do](http://shop.oreilly.com/product/0636920026365.do)

[1]:
[https://www.youtube.com/watch?v=N6sOMGYsvFA&list=PLbgaMIhjbm...](https://www.youtube.com/watch?v=N6sOMGYsvFA&list=PLbgaMIhjbmEm_51-HWv9BQUXcmHYtl4sw)

------
skizm
FYI: The $25 box is checked automatically and there is no confirm window after
the paypal window. I just accidentally payed $10 over what I wanted to pay.
That "checkout area" needs to be a little more clear I think. I didn't even
realize that was the checkout area. I honestly didn't even notice the amount
bubbles and was wondering when I was supposed to plug in what I wanted to pay.
I was super confused when I got to the last page. Didn't notice until I got
the paypal notification on my phone and went back to the main page.

I realize I'm dumb, but maybe someone will read this and not make the same
mistake.

~~~
bawigga
At least some of that $10 went towards a good cause!

~~~
Jare
All of it went to good causes imho. :)

------
sekh60
Seems like a very good buy. I generally like O'Reilly books. That said I am
still very disappointed they decided to stop selling ebooks directly in favour
of pushing their subscription service. Other than HumbleBundle I don't know a
DRM free way to buy them.

~~~
newscracker
When that switch was made, I wrote a strong mail to them. Those who dislike
this move and have the Safari Online subscription through their companies
should boycott that too.

I used to buy eBooks from O'Reilly somewhat often, but the push for
subscription, as if books are like music streaming services, left a bad taste
in my mouth.

------
vbernat
Recently, O'Reilly stopped providing ePub. If you want this format, you can
buy from Google Playstore but the typography here is bad. Has someone checked
how are the ePub in the bundle? Good old O'Reilly ePubs or quickly converted
from some HTML?

~~~
lewapkon
Mobi files are easily convertible to ePub without any loss (you can use for
instance Calibre).

~~~
vbernat
Buying Mobi files is sending a signal that DRM are OK.

~~~
Spivak
I have a lot of DRM-free Mobi files. Do you just mean that .mobi are typically
shipped with DRM? Because the same is true for ePUB too.

~~~
vbernat
You are right. In my head, Mobi files were always downloaded from Amazon (and
here, they always come with a DRM, right?).

------
solidangle
FYI, Real World Haskell (one of the books in the bundle) is available for free
on the author's website:
[http://book.realworldhaskell.org/](http://book.realworldhaskell.org/)

~~~
Tomte
But please note [https://stackoverflow.com/questions/23727768/which-parts-
of-...](https://stackoverflow.com/questions/23727768/which-parts-of-real-
world-haskell-are-now-obsolete-or-considered-bad-practice/23733494#23733494)

"It's old. RWH was written at a time version 6.8 of GHC was being used."

and

"That being said, it's still a useful resource for general guidelines. But
keep in mind that many libraries changed since its release."

------
sotojuan
Programming Rust is currently ~$50 new on Amazon ($30 digital)... if you don't
mind it being digital this is a bargain. I wonder why they decided to put this
on there considering it just came out, but what a great thing.

~~~
lallysingh
And when did Rust become a functional language?

~~~
yetanotheruser
[http://science.raphael.poss.name/rust-for-functional-
program...](http://science.raphael.poss.name/rust-for-functional-
programmers.html)

~~~
steveklabnik
Please note that this is from 2014, before Rust 1.0, and therefore is
inaccurate in a few ways.

We talk a little bit about Rust and functional programming in the book:
[https://doc.rust-lang.org/book/second-
edition/ch13-00-functi...](https://doc.rust-lang.org/book/second-
edition/ch13-00-functional-features.html)

> Rust’s design has taken inspiration from a lot of existing languages and
> techniques, and one significant influence is functional programming.
> Programming in a functional style often includes using functions as values,
> by passing them in arguments, returning them from other functions, assigning
> them to variables for later execution, and so forth. We won’t debate here
> the issue of what, exactly, functional programming is or is not, but will
> instead show off some features of Rust that are similar to features in many
> languages often referred to as functional.

~~~
yetanotheruser
Thanks for replying. I've got to check this out.

------
aaron-lebo
Great deals - the Rust book is easily worth $15 by itself.

~~~
ranit
I usually buy HumbleBumble's programming bundles without much hesitation.
There is always at least one book that is worth the whole deal. And the money
is going to a good cause.

~~~
reificator
That's my approach as well.

Mobile book bundle? I don't typically do much mobile outside of the browser,
but I'll grab it just in case I get the itch.

Security? I don't make a living there but it's always been a fun hobby of
mine. Sold.

Cryptocurrency? Not interested in investing, but I might as well get a deeper
dive on blockchain et al.

Usually 10-15 books for the price of one? Sign me up.

~~~
tasty_freeze
Honestly, the price of a book doesn't matter to me. I'm far, far more
constrained by time than money. Give me 15 free books and most of them are
just going to sit on my shelf for a long time.

Unlike reading a novel, I find reading technical books don't really "stick"
unless I invest significant time, right then, using the language and actually
trying out what I'm learning.

It is akin to my experience with learning an instrument -- it is easy to get
sucked into buying books and watching videos, but it does zero for my ability
unless I'm actively playing and struggling with it.

~~~
g-b-r
Some fair points but if like most people you can spend only so much, getting
more books for that same much is useful: if you have 15 books of a same
subject matter you can rather easily compare them with a quick skim and devote
significant effort only to the best ones, or pick only the best parts from
each. Otherwise you can easily end up spending weeks on what only when you'll
have gained more experience you'll realize was a worthless crappy book.

Even if you're careful in checking the reviews before buying, a lot of
technical books have only few, questionable ones, and sometimes there are
remarkable books behind them nonetheless!

------
jeanmichelx
How is Functional Thinking? I'm starting to write a toy SAT solver in scala
and I could probably benefit from some good,non-trivial design examples

~~~
jeremy_k
I really enjoyed Functional Thinking, read it a few months ago. Its a very
good introduction to get yourself thinking... functionally! All the examples
are Java 9, Scala, Groovy, or Clojure, which isn't my cup of tea since I don't
write code on the JVM, but its more about understanding the concepts (and
shouldn't be an issue for you).

A quick rundown of some high level keywords I jotted down while reading. Map,
Reduce/Fold, Filter, Apply, Curry, Partial Application, Memoization, Lazy
Loading / Streams, Either / Option in Scala.

~~~
vorg
> All the examples are Java 9, Scala, Groovy, or Clojure

Some of those languages are more functional than others. I'd put them on a
scale from least functional to most like so:

    
    
      Java 8 (least functional)
      Apache Groovy
      Java 9
      Scala
      Clojure (most functional)

------
Avshalom
Who the hell at o'rielly is responsible for choosing the animals?

~~~
reificator
At least the one for Rust makes sense, given that the community calls
themselves Rustaceans.

~~~
pdpi
And has Ferris the crab as a mascot.

~~~
reificator
Ferris eh? Apt name.

Thanks for the info, I actually didn't know that despite playing with Rust on
and off for a year or two.

~~~
steveklabnik
For more: [http://rustacean.net/](http://rustacean.net/)

~~~
Avshalom
That's adorbs but doesn't explain who was editing an elixir book and thought
"yeah, musk deer that's what this reminds me of"

~~~
steveklabnik
Sure. Was just trying to provide some context for the Rust book.

------
bloaf
Does anyone have any F# books they would recommend?

~~~
markatkinson
This was a great read coming from a C# background:
[https://www.manning.com/books/real-world-functional-
programm...](https://www.manning.com/books/real-world-functional-programming)

------
ballenf
Is there any hope for getting browsers to implement proper tail calls?

~~~
Scarbutt
Safari already does it, don't know about the status of other browsers.

------
vymague
I haven't bought humble book bundles for a few years. Is there something wrong
on my end, or is the only charity option Code for America?

~~~
brewdad
Different bundles will have different charities that they support, however
each bundle usually only offers one charity. You still have the option of
spreading your payment around to Humble, the developers, or the charity in
whatever ratio you prefer.

