Guest User

Untitled

a guest
Nov 18th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. // map自体は、.NETでは.select拡張メソッドとして提供されているかんじっぽい?
  2.  
  3. // old
  4. static int[]
  5. squarefunc(int[] lis)
  6. {
  7. for(var i = 0; i <= lis.Count() -1; ++i)
  8. {
  9. lis[i] = lis[i] * lis[i];
  10. }
  11. return lis;
  12. }
  13.  
  14. // plain
  15. static IEnumerable<T>
  16. map<T>(IEnumerable<T> lis, Func<T,T> func)
  17. {
  18. var result = new List<T>();
  19. foreach (T val in lis ){ result.Add(func(val)); };
  20.  
  21. return result;
  22. }
  23.  
  24. // closure
  25. static Func<IEnumerable<T>, IEnumerable<T>>
  26. clomap<T>(Func<T,T> func)
  27. {
  28. Func<IEnumerable<T>, IEnumerable<T>> f =
  29. (IEnumerable<T> lis) =>
  30. {
  31. //ここの部分は一行で書くとlis.select(func)になる
  32. var result = new List<T>();
  33. foreach(T val in lis) {result.Add(func(val));};
  34. return result;
  35. };
  36. return f;
  37. }
Add Comment
Please, Sign In to add comment