2016-02-29 79 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