What is a function?
A mapping of values from a domain to a set of values from a co-domain. Not all of the co-domains members needs to be outputs.
What is the domain?
The set from which the function’s input values are chosen
What is the co-domain?
The set from which the function’s output values are chosen. Not all of the co-domains members needs to be outputs.
What is Big Data?
A catch-all term for data that won’t fit the usual containers, cannot be stored/processed on a single server, and that must be processed at very high speeds.
What are the three Vs of big data?
What does Volume mean?
Why is it a problem?
How is it solved?
what it means
- Data is too big to be stored/processed on a single server
why it’s a problem
- relational databases don’t scale well across multiple machines
- and the processing associated with the data must be split across multiple machines
how it’s solved
- Functional programming is a solution
What does Velocity mean?
The data is generated and/or processed at very high speed - need to respond in seconds or milliseconds
What does Variety mean?
What is the most difficult aspect of Big Data? Why?
Its lack of structure (under Variety). This poses challenges because:
What technique is used to discern patterns in data and to extract useful information?
Machine learning
What is the advantage of functional programming for big data?
Its features make it easier to write
- Correct code
- Code that can be distributed to run across more than one server
4 features of functional programming that make it suitable for Big Data
What about immutable data structures makes them suitable for Big Data?
What about statelessness makes it suitable for Big Data?
What about higher order functions makes them suitable for Big Data?
What is a fact in a fact-based model?
What is a graph schema?
What is a first class object?
First class objects are objects which may:
- R - be returned in function calls
- A - be assigned as arguments
- V - be assigned to a variable
- E - appear in expressions
Functions are first-class objects in functional programming languages
What does function application mean?
Applying a function to its arguments
What does partial function application mean?
Parțial function application means only applying a function to some of its arguments. The result is a function.
What is functional composition?
Describe in words what map does
Applies a given function to each element of a list, returning a list of results
Describe in words what filter does
Processes a list to produce a new list containing exactly those elements that match a given condition
Describe in words what reduce or fold does
Reduces a list of values to a single value by repeatedly applying a combining function to the list values