def dfilter(f, l):
  """
  Splits the list into two sublists depending on the fulfilment of a criterion. 
  
  Examples
  --------

  Define a function which tests whether an argument is even number. 

  >>> is_even = lambda x: x % 2 == 0

  Now we can split the list like this: 

  >>> dfilter(is_even, [0, 1, 2, 3, 4, 5])
  ([0, 2, 4], [1, 3, 5])
  """  
  true  = []
  false = []
  for e in l:
    if f(e):
      true.append(e)
    else:
      false.append(e)
  return (true, false)