小编Ada*_*ard的帖子

帮我改进这个Erlang?

所以我对Erlang真的很感兴趣.我找不到借口把它用于任何大的东西,但我不时尝试用它来解决玩具问题.

现在,我正在实施罗马数字翻译.我现在只是做"到"部分,我发现代码非常重复.它就像一个魅力,但是,好吧,看看它:

-module(roman).
-compile([export_all]).

toRoman(N) ->
    toRoman(N, []).

toRoman(0,Acc) ->
    lists:reverse(lists:flatten(Acc));

toRoman(N, Acc) when N >= 1000 ->
    toRoman(N-1000,["M"|Acc]);

toRoman(N,Acc) when N >= 900 ->
    toRoman(N-900,["CM" | Acc]);

toRoman(N,Acc) when N >= 500 ->
    toRoman(N-500,["D" | Acc]);

toRoman(N,Acc) when N >= 400 ->
    toRoman(N-400, ["CD" | Acc]);

toRoman(N,Acc) when N >= 100 ->
    toRoman(N-100, ["C" | Acc]);

toRoman(N,Acc) when N >= 90 ->
    toRoman(N-90, ["XC" | Acc]);

toRoman(N,Acc) when N >= 50 ->
    toRoman(N-50, ["L" | Acc]);

toRoman(N, Acc) when …
Run Code Online (Sandbox Code Playgroud)

syntax erlang roman-numerals

4
推荐指数
2
解决办法
412
查看次数

什么可能导致Labwindows/CVI C程序讨厌2573号?

使用Windows

所以我从二进制文件中读取一个unsigned int数据值列表.该文件包含按顺序列出的许多数据集.这是从char*中读取单个数据集的函数,指向它的开头:

function read_dataset(char* stream, t_dataset *dataset){

    //...some init, including setting dataset->size;

    for(i=0;i<dataset->size;i++){
        dataset->samples[i] = *((unsigned int *) stream);
        stream += sizeof(unsigned int);
    }
    //...
}
Run Code Online (Sandbox Code Playgroud)

read_dataset在这样的上下文中:

//...
char buff[10000];
t_dataset* dataset = malloc( sizeof( *dataset) );
unsigned long offset = 0;

for(i=0;i<number_of_datasets; i++){

    fseek(fd_in, offset, SEEK_SET);

    if( (n = fread(buff, sizeof(char), sizeof(*dataset), fd_in)) != sizeof(*dataset) ){
        break;
    }

    read_dataset(buff, *dataset);

    // Do something with dataset here.  It's screwed up before this, I checked.


    offset += profileSize;
}
//... …
Run Code Online (Sandbox Code Playgroud)

c memory labwindows cvi

3
推荐指数
1
解决办法
1107
查看次数

'bzr update'擦除了我所有的本地提交.救命!

我认为我的变更集可能发生了一些不好的事情.

为了记录,我之前使用过git,hg和svn并取得了一般成功.我对bzr的理解不太完整.

这是我的(Windows XP):

1)使用bzr的svn checkout创建的文件夹.称之为稳定
2)从我用于开发的文件夹中分支出来的文件夹.称之为开发

我的计划是在开发分支上使用commit --local来跟踪变化,并且它正在起作用.

然后,我做了'bzr更新'(因为它在我试图推动时抱怨).当时,stable有一个更旧的代码副本.那么,现在开发有相同的旧版本.'bzr log'没有显示我本地提交的任何证据!

有人可以向我解释发生了什么,以及我可以做些什么来恢复我的旧代码?

bazaar

3
推荐指数
2
解决办法
1181
查看次数

标签 统计

bazaar ×1

c ×1

cvi ×1

erlang ×1

labwindows ×1

memory ×1

roman-numerals ×1

syntax ×1