任何人都可以提供一個示例來顯示在Haskell中添加兩個數組嗎?在Haskell中添加兩個浮點值數組
我對Haskell相當陌生,我通常會發現,通過簡單地理解一種語言並瞭解其他程序員如何使用他們的語言來學習,我可以更快地學習。
很高興看到一些代碼創建兩個浮點數組並調用一個產生具有總和值的數組的函數。相當於以下C代碼的東西。
void addTwoArrays(float *a, float *b, float *c, int len) {
int idx=0;
while (idx < len) {
c[idx] = a[idx] + b[idx];
}
}
int N = 4;
float *a = (float*)malloc(N * sizeof(float));
float *b = (float*)malloc(N * sizeof(float));
float *c = (float*)malloc(N * sizeof(float));
a[0]=0.0; a[1]=0.1; a[2]=0.2; a[3]=0.4;
b[0]=0.0; b[1]=0.1; b[2]=0.2; b[3]=0.4;
addTwoArrays(a,b,c,N);
看到Haskell代碼,取得了相同的結果將有助於我的理解了很多。我猜Haskell版本會創建結果數組並返回它,就像c = addTwoArrays(a,b,N)一樣?
謝謝。
或者只是簡單的'addTwoArrays = zipWith(+)'。 – hammar
你是對的,但是我認爲對於一個新的學習者來說,最好是展示一個正常的函數定義而不是咖喱飯。由於這些是後面章節中的主題:) –
請參閱http://www.willamette.edu/~fruehr/haskell/evolution。html –