感觉学习 Haskell已经开始“中毒”了

今天想用 C 写一段复杂一点的算法,写了个开头感觉快烦死了,很多工作在 Haskell 里面都是不需要操心的。看看下面的代码,感觉 C 语言里面的小零碎东西太多了。

int sum(int n) {
	int result = 0;
	for (int i = 1; i <= n; ++i) {
		result += i;
	}
	return result;
}

换成 Haskell,两行搞定:

sum 0 = 0
sum n = n + sum (n-1)

用 C 语言改写一下,东施效颦的感觉:

int sum(int n) {
	if (n == 0) return 0;
	return n + sum(n-1)
}

运行的时候, n 的值如果太大,C语言就会出现栈溢出的问题。原来一直觉得 C 简单快捷,现在看,Haskell 也不是等闲之辈。Haskell 可以让我们忘记计算机,把全部精力放在数学方法上,用来写数学算法,是非常好的工具。

你可能感兴趣的:(Haskell)