.NET函数调用(C#F#)VS C的性能
发布时间:2020-12-16 05:54:41 所属栏目:百科 来源:网络整理
导读:由于F#2.0已经成为VS2010的一部分,我对F#感兴趣.我想知道使用它的意义是什么.我读了一下,我做了一个基准测量函数调用. 我使用了Ackermann的功能:) C# sealed class Program{ public static int ackermann(int m,int n) { if (m == 0) return n + 1; if (m 0
由于F#2.0已经成为VS2010的一部分,我对F#感兴趣.我想知道使用它的意义是什么.我读了一下,我做了一个基准测量函数调用.
我使用了Ackermann的功能:) C# sealed class Program { public static int ackermann(int m,int n) { if (m == 0) return n + 1; if (m > 0 && n == 0) { return ackermann(m - 1,1); } if (m > 0 && n > 0) { return ackermann(m - 1,ackermann(m,n - 1)); } return 0; } static void Main(string[] args) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); Console.WriteLine("C# ackermann(3,10) = " + Program.ackermann(3,10)); stopWatch.Stop(); Console.WriteLine("Time required for execution: " + stopWatch.ElapsedMilliseconds + "ms"); Console.ReadLine(); } } C class Program{ public: static inline int ackermann(int m,int n) { if(m == 0) return n + 1; if (m > 0 && n == 0) { return ackermann(m - 1,1); } if (m > 0 && n > 0) { return ackermann(m - 1,n - 1)); } return 0; } }; int _tmain(int argc,_TCHAR* argv[]) { clock_t start,end; start = clock(); std::cout << "CPP: ackermann(3,10) = " << Program::ackermann(3,10) << std::endl; end = clock(); std::cout << "Time required for execution: " << (end-start) << " ms." << "nn"; int i; std::cin >> i; return 0; } F# // Ackermann let rec ackermann m n = if m = 0 then n + 1 elif m > 0 && n = 0 then ackermann (m - 1) 1 elif m > 0 && n > 0 then ackermann (m - 1) (ackermann m (n - 1)) else 0 open System.Diagnostics; let stopWatch = Stopwatch.StartNew() let x = ackermann 3 10 stopWatch.Stop(); printfn "F# ackermann(3,10) = %d" x printfn "Time required for execution: %f" stopWatch.Elapsed.TotalMilliseconds Java的 public class Main { public static int ackermann(int m,int n) { if (m==0) return n + 1; if (m>0 && n==0) { return ackermann(m - 1,1); } if (m>0 && n>0) { return ackermann(m - 1,n - 1)); } return 0; } public static void main(String[] args) { System.out.println(Main.ackermann(3,10)); } } 那时 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |