mymap f _ [] = []
mymap f x (y:ys) = f first y : mymap (f x ys)
where if x /= [] first = head(x) else --there will not be else just playing around
我想要做的是實現內置映射,而不是一個列表,f有2個參數(列表)。當ys變成[]時,我想創建一個新的列表(通過調用mymamp)而不是x,我想使用tail(x)== xs並繼續這種方式直到xs變成[]。並將所有這些列表放到最終列表中。但我不能找到一個自動/遞歸的方式來做到這一點。發生檢查:不能構造無限類型:a0 = [a0]
你想要做類似'zipWith'的事情嗎? – bheklilr
您有語法錯誤。 'where子句包含定義,但是你在這裏寫了一個'if'表達式。你應該真的通過一些Haskell教程,像http://learnyouahaskell.com/ –