小编aas*_*asa的帖子

为什么递归列表在haskell中如此之慢?

我在haskell中很新鲜,我在Haskell中定义了一个函数:

febs :: (Integral a)=> a -> a
febs n 
    | n<=0 =0
    | n==1 =1
    | n==2 =1
    | otherwise =febs(n-1)+febs(n-2)
Run Code Online (Sandbox Code Playgroud)

但是,它运行速度很慢,当我做"febs 30"时,它需要大约10秒,而且我在C++中执行相同的功能,它运行速度非常快.

int febs(int n)
{
    if(n == 1 || n ==2)
    {
        return 1;
    }
    return febs(n-1)+febs(n-2);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法提升我的haskell功能速度?

recursion haskell

6
推荐指数
2
解决办法
786
查看次数

为什么输出argv [0]错了?

我使用的是Visual C++ 2010,代码是:

#include "stdafx.h"
#include <stdio.h> 

int _tmain(int argc, _TCHAR* argv[]) { 
    printf("step 0: %s\n", argv[0]);
    int d;
    scanf("%d",&d);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我选择_UNICODE时,输出为"D",当我选择_MBCS时,它运行良好,输出为"D:\ VCTest\c1006.exe"

为什么在_UNICODE中出错?如何为_UNICODE和_MBCS使用相同的代码?

c visual-c++

0
推荐指数
1
解决办法
219
查看次数

标签 统计

c ×1

haskell ×1

recursion ×1

visual-c++ ×1