例如,以这样的形式:
let f = [ a | a <- [1..], a == a - 1]
Run Code Online (Sandbox Code Playgroud)
我只是好奇.它似乎有可能,但我无法完全理解它是如何工作的.这个问题更多的是为了理解Haskell的工作原理,而不是因为我正在寻找一个实际的应用程序.
此外,我知道有类似的问题已被提出,但我所看到的帖子都没有提供任何帮助,因为我很好奇.
编辑:抱歉模糊不清.那么让我澄清一条新规则.挑战是找到一种方法来代表一个无限的斐波纳契数列表,使用从了解你的好东西的第一章中的额外内容!尽可能.怎么样?换句话说,你能想到的最具创造性的方法是用尽可能少的"知识"来产生这些数字.对不起让任何人回答无效,现在.
当从旧的Artifactory服务器迁移到新服务器时,Artifactory建议此处概述的步骤:https : //jfrog.com/knowledge-base/what-is-the-best-way-to-migrate-a-large-artifactory-实例与最小停机时间/
在这两种方法下,它都表示您应该复制$ ARTIFACTORY_HOME / data / filestore,但是随后您要继续导出旧数据并将其导入新实例,并且在第一种方法中,您还要同步文件。好像您只是连续三遍做同样的事情。JFrog确实没有解释为什么这些步骤中的每个步骤都是必要的,而且我不理解每个步骤的不同之处是其他步骤无法完成的。
我正在学习C++,并决定制作一些小而短的函数来练习.以下一点代码将给出一个错误的答案:
float pairwiseSum(float data[], int arraySize, int naive_sum_size=8) {
if (arraySize <= naive_sum_size) {
return naiveSum(data, arraySize);
} else {
int m = arraySize / 2;
return pairwiseSum(&data[0], m) + pairwiseSum(&data[m], arraySize-m);
}
}
Run Code Online (Sandbox Code Playgroud)
naiveSum在这种情况下只是遍历一个数组累积总和,似乎工作正常.如果我有64个1的数组,它会告诉我总和是288.
但是,这个版本的代码每次都能完美运行:
float pairwiseSum(float data[], int arraySize, int naive_sum_size=8) {
if (arraySize <= naive_sum_size) {
cout << "";
return naiveSum(data, arraySize);
} else {
int m = arraySize / 2;
return pairwiseSum(&data[0], m) + pairwiseSum(&data[m], arraySize-m);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Fedora 21并使用g ++ 4.9.2进行编译
为什么一个功能有效,另一个功能失败?
编辑:我的main.cpp文件中显示的完整程序如下所示.
#include <iostream> …
Run Code Online (Sandbox Code Playgroud)