我真的不知道为什么这是一个类型错误:
foo :: (Eq a) => a -> a
foo _ = 2
Run Code Online (Sandbox Code Playgroud)
谁能解释一下?
在C#中,我想要的是这样的:
IDictionary<string, action()> dict = new Dictionary<string, action()>();
Run Code Online (Sandbox Code Playgroud)
我如何在C++中执行此操作?这会给编译器错误:
map<string, void()> exercises;
Run Code Online (Sandbox Code Playgroud) 我到底要取代什么?用于获取迭代器(it)到某个元素(例如Base(2))?
我尝试了一些镜头,但没有,编译器只是说这是错误的.
这是代码
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
class Base
{
public:
Base(int a) {ina = a;}
~Base() {}
int Display() {return ina;}
int ina;
};
int main(int argc, char *argv[])
{
vector<Base> myvector;
for(int i=0 ; i<10 ; i++)
{
myvector.push_back(Base(i));
}
vector<Base>::iterator it;
it = find(myvector.begin(), myvector.end(), ??? );
system("PAUSE");
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢 !
除典型之外,还有哪些其他与语言无关的设计递归函数的方法:
if (counter < 1)
return output;
else
callSelf();
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?每当查看示例时,我总会看到上面代码的一个版本.
谢谢!:)
language-agnostic recursion functional-programming tail-recursion