haskell wreq 参数列表
haskell wreq param list
在出色的 wreq
Haskell 库中,可以轻松地向 URL:
添加一个或多个查询参数
opts = defaults & param "key" .~ ["value"]
然而我正在努力做的是一次添加一个 list 参数:
params = [("key1", "value1"), ("key2", "value2"), ("key3", "value3")]
我知道有功能 params
但我找不到任何关于如何使用它的例子。
param <key>
和params
都是镜头:
param :: Text -> Lens' Options [Text]
params :: Lens' Options [(Text, Text)]
无需过多赘述,您可以想到镜头聚焦某物,例如param "foo"
着重于Options
中属于参数foo
(*)的部分[Text]
。然后,您可以 change/query/manipulate 这些具有正确功能的值(请参阅 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% 正确,因为镜头允许你做各种事情,但对于这种情况来说已经足够好了。
在出色的 wreq
Haskell 库中,可以轻松地向 URL:
opts = defaults & param "key" .~ ["value"]
然而我正在努力做的是一次添加一个 list 参数:
params = [("key1", "value1"), ("key2", "value2"), ("key3", "value3")]
我知道有功能 params
但我找不到任何关于如何使用它的例子。
param <key>
和params
都是镜头:
param :: Text -> Lens' Options [Text]
params :: Lens' Options [(Text, Text)]
无需过多赘述,您可以想到镜头聚焦某物,例如param "foo"
着重于Options
中属于参数foo
(*)的部分[Text]
。然后,您可以 change/query/manipulate 这些具有正确功能的值(请参阅 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% 正确,因为镜头允许你做各种事情,但对于这种情况来说已经足够好了。