18 lines
		
	
	
	
		
			314 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
	
		
			314 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
rec {
 | 
						|
 | 
						|
  fold = op: nul: list:
 | 
						|
    if list == []
 | 
						|
    then nul
 | 
						|
    else op (builtins.head list) (fold op nul (builtins.tail list));
 | 
						|
 | 
						|
  concat =
 | 
						|
    fold (x: y: x + y) "";
 | 
						|
 | 
						|
  flatten = x:
 | 
						|
    if builtins.isList x
 | 
						|
    then fold (x: y: (flatten x) ++ y) [] x
 | 
						|
    else [x];
 | 
						|
 | 
						|
  sum = fold (x: y: builtins.add x y) 0;
 | 
						|
 | 
						|
}
 |