code: def scanl1(f: Callable[[T, T], T], xs: Iterable[T]) -> Iterator[T]:
      
      return accumulate(xs, f)
docs: Make an iterator that returns accumulated results of a binary function
      applied to elements of an iterable.
  
      .. math::
          scanl1(f, [x_0, x_1, x_2, ...]) = [x_0, f(x_0, x_1), f(f(x_0, x_1), x_2), ...]
  
      Parameters
      ----------
      f
          A binary function of two arguments of type T.
      xs
          An iterable of elements of type T. 
  
      Returns
      -------
      Iterator
          The iterator of accumulated results.
  
  
      Examples
      --------
      >>> from delphi.utils.fp import scanl1
      >>> list(scanl1(lambda x, y: x + y, range(5)))
      [0, 1, 3, 6, 10]