haskell wreq param list

时间:2016-02-29 09:24:56

标签: http haskell url wreq

在优秀的wreq Haskell库中,可以轻松地向URL添加一个或多个查询参数:

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

然而,我正在努力做的是一次添加列表参数:

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

我知道有params函数,但我找不到任何关于如何使用它的示例。

1 个答案:

答案 0 :(得分:3)

param <key>params都是镜头:

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

没有太多细节,你可以想到一个镜头聚焦的东西,例如param "foo"侧重于属于参数[Text](*)的Options中的foo(.~)。然后,您可以使用正确的函数更改/查询/操作这些值(请参阅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 视为

function resetCombo(combo) {
      document.getElementById(combo).value =  document.getElementById(combo).options[0].value;
 }

(*)这不是100%真实,因为镜头可以让你做各种各样的事情,但足够好用于这种情况。