Specification: Find the name of the youngest person older than 35, returning null if none exists.
Example input/output:
Input: 
people| age | name | 
|---|---|
35 | John | 
36 | Mary | 
37 | Jane | 
Output: 
MaryPython - Imperative
def youngest_over_35(people):
  over_35 = []
  for person in people:
    if person['age'] > 35:
      over_35.append(person)
    
  youngest = None
  for person in over_35:
    if youngest is None or person['age'] < youngest['age']:
      youngest = person
  return youngest['name'] if youngest is not None else NonePython - Functional
def youngest_over_35(people): over_35 = [p for p in people if p['age'] > 35] youngest = min(over_35, default=None, key=lambda p: p['age']) return youngest['name'] if youngest is not None else None
Python - Pandas
def youngest_over_35(people):
  over_35 = people[people.age > 35]
  if len(over_35) == 0: 
    return None
  else:
    youngest = over_35.loc[over_35.age.idxmin()]
    return youngest['name']R - Tidyverse
youngest_over_35 <- function(people) {
  people %>%
    filter(age > 35) %>%
    slice(which.min(age)) %>%
    pull(name)
}SQL - SQLite
SELECT name FROM people WHERE age = ( SELECT MIN(age) FROM people WHERE age > 35) LIMIT 1
Datalog - Souffle
youngest_over_35(Name) :- 
  people(Age, Name), 
  Age = min Age : { people(Age, _), Age > 35 }.Q - kdb+
old_enough: select from people where age > 35 youngest_over_35: (first select name from old_enough where age = min(age)) `name