我已经开始学习 Haskell,我想我会使用常见的(“冯·诺依曼”)定义来实现序数。所以我写道:
ordinal 0 = []
ordinal x = [ ordinal n | n<-[1..(x-1)] ]
Run Code Online (Sandbox Code Playgroud)
但翻译并不满意,它反而告诉我,据说
* Couldn't match type `a' with `[a]'
Expected: t -> a
Actual: t -> [a]
* Relevant bindings include
ordinal :: t -> a (bound at fist.hs:7:1)
|
1 | ordinal 0 = []
| ^^^^^^^^^^^^^^^...
Run Code Online (Sandbox Code Playgroud)
现在我想这里可能出错的是该列表不是同类类型的。但是我该如何切换到元组呢?是否有“元组理解”之类的东西?
我想在控制台中打印一个计时时间点,并且我发现了以下 stackoverflow 问题:
\n\n其中一个答案(How do you print a C++11 time_point?)指出,在 C++20(现已发布一年多)中,可以将时间点放入输出命令中。不幸的是,我无法在我的机器上编译代码。我使用了以下命令进行编译:
\ng++ -std=c++20 chrono5.cpp -o test
我使用此命令是因为我读到直接输出需要 C++ 20 才能工作。
\n文件“chrono5.cpp”包含与上面链接指向的答案(编辑)完全相同的代码,该代码实际上是由 chrono 库的创建者 Howard Hinnant 编写的。我究竟做错了什么?
\n错误消息非常长,因此我可能不应该完整包含它,但这是它的开头:
\nchrono5.cpp:7:15: error: no match for \xe2\x80\x98operator<<\xe2\x80\x99 (operand types are \xe2\x80\x98std::ostream\xe2\x80\x99 {aka \xe2\x80\x98std::basic_ostream<char>\xe2\x80\x99} and \xe2\x80\x98std::chrono::_V2::system_clock::time_point\xe2\x80\x99 {aka \xe2\x80\x98std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >\xe2\x80\x99})\n 7 | std::cout << std::chrono::system_clock::now() << " UTC\\n";\n | ~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n | | |\n | | std::chrono::_V2::system_clock::time_point {aka …Run Code Online (Sandbox Code Playgroud) 我正在尝试用 C++ 创建一个双向链表,并且我正在尝试正确执行它。因此,我认为我应该遵守任何“官方”C++ 指南推荐的任何接口结构,例如接口。在Java中,有这样的接口,可以免费使用,并且标准化抽象数据类型(例如https://docs.oracle.com/javase/8/docs/api/java/util/List.html) 。
我的问题:C++中有类似的东西吗?Startpageing 找到了我这个链接:
https://en.cppreference.com/w/cpp/container/list
但它似乎没有使用任何继承。