Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mathematics, Surprisingly

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Mathematics, Surprisingly

Do programmers need advanced mathematics? And what if they are designing and implementing a programming language? In the talk I will show where I needed mathematics in my work at Jut and how bad job I would have done without understanding it. You can think of this as a small contribution to a discussion about education of programmers and the role of mathematics and other theoretical subjects in it.

Presented at Rubyslava #52 (Data Science Edition).

Video: https://youtu.be/7cThtM6Yk1A

Details:
http://lanyrd.com/2015/rubyslava-october/sdxdgc/
https://www.facebook.com/events/862212323886828/

Avatar for David Majda

David Majda

October 22, 2015
Tweet

More Decks by David Majda

Other Decks in Programming

Transcript

  1. read … | ( reduce -every :5s: max(value) by host

    | @timechart; keep time, value | @logger )
  2. read … | ( reduce -every :5s: max(value) by host

    | @timechart; keep time, value | @logger ) read @timechart reduce keep @logger
  3. (a 1,1 ∨ … ∨ a 1,m(1) ) ∧ …

    ∧ (a n,1 ∨ … ∨ a n,m(n) )
  4. { c: 3, s: 6, m: 3 } read …

    | reduce c = count(x) s = sum(x) m = max(x) { x: 1 } { x: 2 } { x: 3 }
  5. { c: 2, s: 3, m: 2 } read …

    | reduce c = count(x) s = sum(x) m = max(x) { x: 1 } { x: 2 }
  6. { c: 1, s: 1, m: 1 } read …

    | reduce c = count(x) s = sum(x) m = max(x) { x: 1 }
  7. { c: ?, s: ?, m: ? } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nothing)
  8. { c: 0, s: ?, m: ? } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nothing)
  9. { c: 0, s: ?, m: ? } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nothing)
  10. { c: 0, s: 0, m: ? } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nothing)
  11. { c: 0, s: 0, m: ? } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nothing)
  12. { c: 0, s: 0, m: undefined } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nothing)
  13. { c: 0, s: 0, m: undefined } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nothing)
  14. { c: 0, s: 0, m: -Infinity } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nothing)
  15. Set S, operation ⊕ : S ⨉ S → S

    1. ⊕ is associative on elements of S 2. S contains identity element under ⊕
  16. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  17. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  18. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  19. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  20. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  21. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  22. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  23. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  24. N * D → D D * N → D

    D / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  25. N * D → D D * N → D

    D / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  26. N * D → D D * N → D

    D / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  27. N * D → D D * N → D

    D / D → N D / N → D D % D → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D