Plays in YouTube's player, loaded from youtube-nocookie.com when you press Play. Watch on YouTube

Learn · Functional Programming with OCaml

Lecture 38 of 73Week 7

Exceptions

Prof. K C Sivaramakrishnan · IIT Madras

Credits and licence

From
Functional Programming with OCaml, IIT Madras (at NPTEL)
Licence
CC BY-NC-SA, as NPTEL states it. Non-commercial use only.
Attribution
NPTEL states: "Distributed under Creative Commons Attribution-ShareAlike / CC BY - NC - SA", beside a BY-NC-SA badge.
Who can watch
Tweens profiles and older. How courses are placed

All the lectures

  1. Course introduction: what you'll learn, how it's run YouTube
  2. Why functional programming? YouTube
  3. A tour of OCaml: values, types, and the toplevel YouTube
  4. Your first OCaml program: hello, world (and beyond) YouTube
  5. Tutorial: temperature conversions and small expressions YouTube
  6. Literals: integers, floats, booleans, strings YouTube
  7. `let` bindings and shadowing YouTube
  8. Static vs dynamic semantics, and type inference YouTube
  9. Operators, precedence, and common pitfalls YouTube
  10. `if`/`then`/`else` as an expression YouTube
  11. Tutorial: small expressions, end to end YouTube
  12. Functions as values, and anonymous functions YouTube
  13. Recursion YouTube
  14. Currying and partial application YouTube
  15. Tail recursion and accumulators YouTube
  16. Local functions and mutual recursion YouTube
  17. Tutorial: Fibonacci, GCD, power, digits YouTube
  18. Tuples YouTube
  19. Records YouTube
  20. Variants (sum types) YouTube
  21. Recursive types: lists, trees, expressions YouTube
  22. Tutorial: a tiny AST for OCaml YouTube
  23. Tutorial: a tiny file system YouTube
  24. Basic patterns: literals, variables, wildcards YouTube
  25. Pattern matching on lists and trees YouTube
  26. Nested patterns and or-patterns YouTube
  27. Guards: when-clauses on patterns YouTube
  28. Exhaustiveness checking YouTube
  29. Tutorial: an interpreter for the OCaml AST YouTube
  30. Functions as values, revisited YouTube
  31. map: transform every element YouTube
  32. filter: keep what passes the predicate YouTube
  33. fold: reduce a list to a single value YouTube
  34. Function composition and pipelines YouTube
  35. Tutorial: fold across data structures YouTube
  36. Mutable references YouTube
  37. Mutable records and arrays YouTube
  38. Exceptions YouTube
  39. Streams and Laziness YouTube
  40. Memoization YouTube
  41. Module basics YouTube
  42. Module signatures YouTube
  43. Functors YouTube
  44. Tutorial: A Queue functor YouTube
  45. The option monad and `let*` YouTube
  46. Monad laws, the list monad, and the result monad YouTube
  47. The state monad and parameterised state YouTube
  48. GADTs: variants with type-level information YouTube
  49. GADTs: use cases beyond toy interpreters YouTube
  50. GADTs: hlists and witnesses YouTube
  51. Tutorial: a tiny well-typed evaluator YouTube
  52. Why test a type-safe program? YouTube
  53. Specifications and invariants YouTube
  54. Designing test cases: black-box and glass-box YouTube
  55. Unit testing YouTube
  56. Property-based testing with QCheck YouTube
  57. Model-based testing of stateful data structures YouTube
  58. Tutorial: testing the expr evaluator with OUnit2 and QCheck YouTube
  59. What memory safety is, and why it is a security story YouTube
  60. Memory safety by construction YouTube
  61. Data races are undefined behaviour YouTube
  62. Where OCaml itself has UB YouTube
  63. Tutorial: walking Heartbleed end to end YouTube
  64. Locality: safe stack allocation YouTube
  65. Uniquenss: the only reference YouTube
  66. Linearity: use at most once YouTube
  67. Contention: Synchronisation at compile time YouTube
  68. Portability: data race freedom across domains YouTube
  69. Tutorial: a resource-management API YouTube
  70. Why do we need an OS? YouTube
  71. MirageOS Unikernel Background YouTube
  72. MirageOS Basics YouTube
  73. Suresh the Stationmaster: a worked unikernel example YouTube