Specification: Find directors of movies that Tom Hanks starred in
Example input/output:
Input:
actors
movie | actor |
---|---|
AM | Tom Hanks |
AM | Not Tom Hanks |
AM | Also not Tom Hanks |
BM | Other actor |
CM | Other actor |
Input:
directors
director | movie |
---|---|
A | AM |
A | BM |
C | CM |
Output:
[A]
Python - Imperative
def tom_hanks(actors,directors): r_directors = set() for a in actors: if 'Tom Hanks' == a['actor']: for d in directors: if a['movie'] == d['movie']: r_directors.add(d['director']) return r_directors
Python - Functional
def tom_hanks(actors,directors): movies = [a['movie'] for a in actors if a['actor'] == 'Tom Hanks'] directors = [d['director'] for d in directors if d['movie'] in movies] return directors
Python - Pandas
def tom_hanks(actors,directors): movies = list(actors.loc[ actors['actor'] == 'Tom Hanks', 'movie']) return directors[directors['movie']. isin(movies)]['director']
R - Tidyverse
tom_hanks <- function(actors, directors) { actors %>% filter(actor == "Tom Hanks") %>% inner_join(directors, by = "movie") %>% pull(director) }
SQL - SQLite
SELECT directors.director FROM directors INNER JOIN actors ON directors.movie = actors.movie WHERE actors.actor="Tom Hanks"
Datalog - Souffle
tom_hanks(Director):- actors("Tom Hanks",movie), directors(Director,movie).
Q - kdb+
tom_hanks: (select director from actors ij (`movie xkey directors) where actor ~\: "Tom Hanks") `director