2016-02-29 59 views
2

中的出色wreq哈斯克尔库很容易的一个或多个查询参数添加到URL:哈斯克尔WREQ PARAM列表

opts = defaults & param "key" .~ ["value"]

但什么,我努力做的是增加一个列表在一个时间参数:

params = [("key1", "value1"), ("key2", "value2"), ("key3", "value3")]

我知道有功能params但我无法找到任何关于如何使用它的例子。

回答

3

两个param <key>params的镜头:

param :: Text -> Lens' Options [Text] 
params ::   Lens' Options [(Text, Text)] 

没有去过多的赘述,你可以把镜头聚焦的东西,例如param "foo"重点关注属于参数foo(*)的Options中的一些[Text]。然后,您可以使用正确的功能更改/查询/操作这些值(请参阅lens软件包)。

您已经使用了(.~)取代目前的值,你可以用params再次使用它:

default & params .~ [("key1", "value1"), ("key2", "value2"), ("key3", "value3")] 

你能想到的(.~)在上下文

(.~) :: Lens' a b -> b -> a -> a 
-- concrete: 
(.~) :: Lens' Options [(Text, Text)] -> [(Text, Text)] -> Options -> Options 

( *)这不是100%真实的,因为镜片可以让你做各种各样的东西,但对于这种情况来说足够好。

+0

非常感谢Zeta,谁会想到它会这么简单!通常的我,试图过分简单的事情-_-! –

+0

@SimoneTrubian不客气。如果此答案满足您,请确保[接受它](http://meta.stackexchange.com/a/5235/191939),否则它将作为“未答复”保留在多个过滤器中。 – Zeta