小编efi*_*fie的帖子

是否可以隐藏使用haddock出现在文档中的特定功能?

我使用haddock并且不希望我的所有导出函数都显示在文档中.是否可以隐藏特定功能?我在http://www.haskell.org/haddock/doc/html/module-attributes.html找到了prune属性,但这不是我想要的,因为一些要导出的函数没有文档注释.

haskell haddock

9
推荐指数
1
解决办法
522
查看次数

这个函数究竟是一个char到int转换的例子吗?

Kernighan和Ritchie 撰写的The C Programming Language一书,第二版在关于类型转换的章节中的第43页中说明:

的另一个例子char,以int转换函数lower,其中单个字符映射到下壳体为ASCII字符集.如果字符不是大写字母,则lower返回不变.

/* lower: convert c to lower case; ASCII only */
int lower(int c)
{
    if (c >= 'A' && c <= 'Z')
        return c + 'a' - 'A';
    else
        return c;
}
Run Code Online (Sandbox Code Playgroud)

它没有在文中明确提及,所以我想确保我理解正确:转换是在lower用类型变量调用函数时发生的char,不是吗?特别是,表达

c >= 'A'
Run Code Online (Sandbox Code Playgroud)

没有任何一个转换,从intchar,因为字符常量像'A' 作为被处理int内部从一开始,不是吗?编辑:或者这是否与charANSI C 有所不同(例如,字符常量被视为a ),本书涵盖了哪些内容?

c type-conversion kernighan-and-ritchie

7
推荐指数
1
解决办法
260
查看次数

argv指向指针数组的指针

我对以下段落如何与其后面的代码匹配感到困惑:

由于argv是指向指针数组的指针,因此我们可以操作指针而不是索引数组.下一个变体基于递增argv,它是指向char的指针,而argc倒计时:

#include <stdio.h>
/* echo command-line arguments; 2nd version */
main(int argc, char *argv[])
{
    while (--argc > 0)
        printf("%s%s", *++argv, (argc > 1) ? " " : "");
    printf("\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

char *argv[]只是一个指针数组?指向数组的指针不会被写成char *(*argv[])类似的东西吗?

作为旁注,通常我发现混合数组和指针的声明相当混乱,这是正常的吗?

c arrays pointers kernighan-and-ritchie argv

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

按需调用:何时在Haskell中使用?

http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_need说:
"按需调用是一个按名称调用的memoized版本,其中,如果评估函数参数,则存储该值以供后续使用. [...] Haskell是使用按需调用评估的最着名的语言."

但是,并不总是存储计算的值以便更快地访问(例如,考虑斐波纳契数的递归定义).我在#haskell问了一个人,答案是这个记忆是自动完成的"只在一个例子中,例如,如果你有'让foo = bar baz',foo将被评估一次".

我的问题是:实例究竟意味着什么,还有其他情况,而不是自动完成记忆的情况?

haskell lazy-evaluation

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

Hlint与(Win)GHCi集成

通过命令提示符使用Hlint对我有用,但是我在尝试执行GHCi集成时遇到问题.

http://community.haskell.org/~ndm/darcs/hlint/hlint.htm说"脚本位于hlint.ghci [link],并在数据目录中本地安装了一个副本.要使用,请添加内容到你的GHCi启动文件."

C:\ Users\X\AppData\Roaming\cabal\hlint-1.8.23包含此hlint.ghci文件.

现在我想找到GHCi启动文件.我使用的是Windows 7,根据http://www.haskell.org/ghc/docs/latest/html/users_guide/ghci-dot-files.html,ghci.conf文件应该在... /的文件夹中APPDATA/GHC.但是我的ghc文件夹(C:\ Users\X\AppData\Roaming\ghc)只包含一个ghci_history文件.

所以我将hlint.ghci文件复制到我的ghc文件夹并将其重命名为ghci.conf.从现在开始WinGHCi它崩溃,如果我启动GHCi它说:

interactive>:10:91:字符'\n'的字符串/字符文字中的词法错误

interactive>:4:105:字符'\n'的字符串/字符文字中的词法错误

我究竟做错了什么?该问题与缺少的GHCi启动文件有关吗?

haskell ghci winghci hlint

2
推荐指数
1
解决办法
1096
查看次数

类模板的模板参数列表中的类型/值不匹配

我有这门课:

template<typename Bar, template<typename Bar> class Container>
class Foo
{
    Container<Bar> myContainerBar;
};
Run Code Online (Sandbox Code Playgroud)

而这个子类:

class FooSpecialization : public Foo<std::string,std::vector>
{
};
Run Code Online (Sandbox Code Playgroud)

我在上面的第二个代码片段的第一行(在子类)得到以下错误:

模板参数列表中参数2的类型/值不匹配'模板类Container>类Foo'

我也试过了

class FooSpecialization : public Foo<std::string,std::vector<std::string>>
Run Code Online (Sandbox Code Playgroud)

没有成功.怎么了?我找不到解决这个问题的SO问题.

c++ templates subclass

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