Skip to content

Instantly share code, notes, and snippets.

@andrewthad
Created December 12, 2019 14:48
Show Gist options
  • Save andrewthad/961fb68c41f9d415a033eb6ef443fab9 to your computer and use it in GitHub Desktop.
Save andrewthad/961fb68c41f9d415a033eb6ef443fab9 to your computer and use it in GitHub Desktop.
Questions

Haskell Questions

What are the benefits of a type system? Describe a problem that strong static typing helps prevent. Describe a problem that strong static typing does not help prevent.

What is recursion? What is well-founded recursion? What is a base case?

Define referential transparency. Why is this a desirable property of a function? What optimizations opportunities does it make possible?

What is an algebraic data type? How does this differ from a struct in C or a class in an OOP language?

Describe what the term fold typically means in the Haskell ecosystem. What is an accumulator? What algorithms can be implemented as folds.

What is parametric polymorphism? How does this differ from ad-hoc polymorphism. How does the Haskell language allow users to work with them? How are these accomplished in other languages (e.g. Java)?

What is laziness? When is this useful? When does it get in the way?

SQL Questions

What is a join?

Describe the intuition behind normal forms. Don't go through 1NF, 2NF, etc. individually. Just describe what the common theme is. When would denormalization be useful.

What is an index? Describe an operation that would be accelerated by an index. Describe an operation that would not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment