Data.PSQueue:表达式上下文中的模式语法:_

时间:2011-12-29 22:21:29

标签: haskell

请参阅下面的我的代码段。我非常清楚错误是什么,但我想知道当密钥是元组时是否有一种简单的方法来使用下划线查询P​​SQ。至少它看起来很诱人:D。

main :: IO()
main = do
     time <- getCPUTime
     let qTuple = ("mine", 3455, msgs)
     let rrq = PSQ.singleton qTuple time
     let r = PSQ.lookup ("mine", _, _) rrq
     print (r)

最终我发送的邮件的目的地是IPv4地址和TCP端口号,需要按照创建时间顺序排队(一段时间后):( IPv4,tport),(msg,ctime)。一方面,我希望能够查询是否存在任何给定元组(IPv4,tport)的队列,如果需要,可以创建这样的队列,或者将它排队到正确的时间。

1 个答案:

答案 0 :(得分:1)

如果您要问是否可以使用这样的语法来查找PSQ中该表单后面的任何元组,答案是否定的:)对于所有数据结构通常不可能这样做毕竟。

听起来你应该为每个项目(存储在项目本身中)分配一个唯一的标识符(这个号码是什么?),然后键入PSQ;那么你可以从你关心的字段中获得Map s(字符串,整数或其他)到项目;之后,它只是另一个查找以获得优先级。当然,您至少需要Map从唯一标识符到项目本身。

(顺便说一下,如果这些是older question中提到的相同元组,我建议使用数据类型而不是元组。)