我在这里使用drop编写了一个工作版本:
main = do cs <- getContents
putStr $ unlines $ oddL $ lines cs
oddL :: [a] -> [a]
oddL [] = []
oddL (x:xs) = x : (oddL $ drop 1 xs)
Run Code Online (Sandbox Code Playgroud)
但是我想知道是否有办法在没有掉线的情况下做到这一点?即使它不那么有效.
oddL :: [a] -> [a]
oddL (x:_:xs) = x : oddL xs -- "forget" the even element
oddL [x] = [x]
oddL _ = [ ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |