我是 Haskell 的新手,并试图了解如何编写函数,该函数将采用两个整数并生成该范围内所有整数的列表。
这是我到目前为止所拥有的,但没有运气。
rangeList :: Integer -> Integer -> [Integer]
rangeList n m
| n == m = []
| otherwise = n : n + (rangeList n (m-1))
Run Code Online (Sandbox Code Playgroud) 我对 Haskell 还很陌生,所以我仍然掌握着一切。我想编写两个函数,其中第一个函数接受一个整数列表并返回第一个元素。第二个函数执行相同的操作,但返回最后一个元素。到目前为止我有
firstList :: [Integer] -> Integer
firstList [] = 0
firstList (_:xs) = head xs
lastList :: [Integer] -> Integer
lastList [] = 0
lastList (_:xs) = (last) xs
Run Code Online (Sandbox Code Playgroud)
lastList 函数似乎在工作,但在 firstList 中不起作用。例如,对于列表 [3, 1, 2, 4]; 它返回 1 而不是 3。如何改进我的代码?