小编sk-*_*sk-的帖子

如何在 Haskell 中生成两个整数(最小值和最大值)内的所有整数的列表?

我是 Haskell 的新手,并试图了解如何编写函数,该函数将采用两个整数并生成该范围内所有整数的列表。

这是我到目前为止所拥有的,但没有运气。

rangeList :: Integer -> Integer -> [Integer]
rangeList n m
 | n == m = []
 | otherwise = n : n + (rangeList n (m-1))
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming

1
推荐指数
2
解决办法
126
查看次数

编写两个函数,在 Haskell 中返回列表的第一个和最后一个元素

我对 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。如何改进我的代码?

haskell functional-programming

0
推荐指数
1
解决办法
186
查看次数

标签 统计

functional-programming ×2

haskell ×2