forked from cgvr/DeltaVR
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			886 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			886 B
		
	
	
	
		
			C#
		
	
	
	
	
	
//
 | 
						|
// Author:
 | 
						|
//   Jb Evain (jbevain@gmail.com)
 | 
						|
//
 | 
						|
// Copyright (c) 2008 - 2015 Jb Evain
 | 
						|
// Copyright (c) 2008 - 2011 Novell, Inc.
 | 
						|
//
 | 
						|
// Licensed under the MIT/X11 license.
 | 
						|
//
 | 
						|
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
 | 
						|
namespace MonoFN.Cecil.Rocks {
 | 
						|
 | 
						|
	static class Functional {
 | 
						|
 | 
						|
		public static System.Func<A, R> Y<A, R> (System.Func<System.Func<A, R>, System.Func<A, R>> f)
 | 
						|
		{
 | 
						|
			System.Func<A, R> g = null;
 | 
						|
			g = f (a => g (a));
 | 
						|
			return g;
 | 
						|
		}
 | 
						|
 | 
						|
		public static IEnumerable<TSource> Prepend<TSource> (this IEnumerable<TSource> source, TSource element)
 | 
						|
		{
 | 
						|
			if (source == null)
 | 
						|
				throw new ArgumentNullException ("source");
 | 
						|
 | 
						|
			return PrependIterator (source, element);
 | 
						|
		}
 | 
						|
 | 
						|
		static IEnumerable<TSource> PrependIterator<TSource> (IEnumerable<TSource> source, TSource element)
 | 
						|
		{
 | 
						|
			yield return element;
 | 
						|
 | 
						|
			foreach (var item in source)
 | 
						|
				yield return item;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |