![](/img/trans.png)
[英]Functional Programming, Haskell applying a function to a list of variables
[英]Applying a function to a list of elements in Haskell
假设我定义了一个队列并具有以下 function:
pushq :: a -> Queue a -> Queue a
pushq x (Queue1 xs) = Queue1 (x:xs)
它通过将单个元素添加到队列的前面来工作,但是说我想在另一种方法中使用 function 将整个元素列表添加到队列而不是单个元素,例如:
adds :: [a] -> Queue a -> Queue a
我如何能够遍历列表并在每个元素上一个一个地使用 pushq function 将其添加到队列中?
我如何能够遍历列表并在每个元素上一个一个地使用 pushq function 将其添加到队列中?
通过递归。 对于空列表,您可以返回Queue a
本身:
adds [] qs = qs
对于非空列表,您首先在列表的尾部调用adds
,然后将该元素推入队列:
adds (x:xs) q = pushq … (adds …)
您仍然必须在此处填写…
。 我把它留作练习。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.