Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
List of IPython Notebooks by Peter Norvig (norvig.com)
234 points by tu7001 on July 31, 2016 | hide | past | favorite | 12 comments


In the linked notebook http://nbviewer.jupyter.org/url/norvig.com/ipython/Countdown... when he says

>because there are 2 ways to make 27 with the numbers (10, 9, 8), namely, ((10+9)+8) and (10+(9+8))

why not also (10+9+8)?


+ is an associative binary operator. You have to decide which pair to add first.


To add on, I think he's writing from a Lisp perspective, not general math notation.


That doesn't matter. It's just the basic associative property of addition in arithmetic. As such, it's present in all programming languages.


But in normal math it's easy to use n-ary addition.


In Lisp too -- arguably easier than in most languages. To add 10+9+8 in Lisp you write (+ 10 9 8), a single 3-ary call to +. In, say, C you write 10+9+8 and the parser turns that into two 2-ary additions.

(Of course, in either language you end up with two 2-operand ADD instructions in the object code. Nothing has hardware for arbitrary n-ary adds!)


Nowadays math mostly ends up in a CPU crunching two inputs at a time.

If you don't write it so explicitly, a compiler will do it for you anyway.


Thank you both, that makes sense.


Think about when you evaluate the expression (10+9+8). You will either add 10+9 or 9+8 first and add 19 to 8 or 17 to 8. (10+9+8) is ambiguous because it can be parsed both ways.


As an amateur programmer, I want to call out this particular notebook:

http://nbviewer.jupyter.org/url/norvig.com/ipython/Cheryl.ip...

Such elegant and readable translation from English to logic to code.


When something like this happens: when the author of one of my favorite computer science text books releases an interactive notebook my main sensation is one of envy.

I really envy all the students who get to study Norvig like this.

Also, you'll probably have access to better health care.


Absolutely interesting. I'd change the title from "IPython from Peter Norvig" to "IPython Notebooks by Peter Norvig", though.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: