小编rob*_*obx的帖子

如何在没有结束部分的情况下在CDATA部分内写入文字"]]>"

非常简单的问题,我正在编写一个XML文档,我不知道如何编写"]]>"而不会被视为该部分的结尾.

xml cdata

10
推荐指数
3
解决办法
1592
查看次数

Haskell中部分函数的图:a - >也许b - > [a] - > [(a,b)]

鉴于部分功能f和参数列表xs,我找对的列表(x, f(x)),其中f定义.这似乎是一件很自然的事情,但到目前为止我还没有优雅地表达出来.我想知道在Maybe/Monad/Applicative/...区域中是否有任何可以帮助的东西?以下作品,但似乎有点明确.

import Data.Maybe (mapMaybe)

graph :: (a -> b) -> [a] -> [(a, b)]
graph f = map (\x -> (x, f x))

liftMaybe :: (a, Maybe b) -> Maybe (a, b)
liftMaybe (x, Just y)  = Just (x, y)
liftMaybe (_, Nothing) = Nothing

partialgraph :: (a -> Maybe b) -> [a] -> [(a, b)]
partialgraph f = mapMaybe liftMaybe . graph f
Run Code Online (Sandbox Code Playgroud)

是否liftMaybe存在其他名称?我发现其中一些重新制定:

import Control.Monad (ap)

graph' …
Run Code Online (Sandbox Code Playgroud)

haskell tuples maybe

9
推荐指数
2
解决办法
302
查看次数

如何在PostgreSQL sum()中检测NULL行

我希望聚合列的总和,同时跟踪是否存在表示错误情况的NULL值.例如,取表号码:

# select * from numbers;
  n   |  l  
------+-----
    1 | foo
    2 | foo
 NULL | bar
    4 | bar
Run Code Online (Sandbox Code Playgroud)

给定一个标签l,我想计算n带有该标签的数字总和,前提是没有NULL值.理想情况下,对于没有任何行的一个标签,总和将是0,所以我在寻找一些查询q,从而 q('foo') = 3,q('baz') = 0q('bar')以某种方式发出错误信号,例如,通过返回NULL.

我从sum() 聚合函数开始,但是将NULL行转换为0.一个解决方案是返回,NULL只要有任何NULL值.

sum()

# select sum(n) from numbers where l = 'bar';
 sum 
-----
   4
Run Code Online (Sandbox Code Playgroud)

但我宁愿和你sumnull()在一起

# select sumnull(n) from numbers where l = 'bar';
 sumnull …
Run Code Online (Sandbox Code Playgroud)

postgresql null sum aggregate-functions

9
推荐指数
2
解决办法
6459
查看次数

如何在Haskell中获得深层函子的句柄?

偶尔我会发现自己映射到一大堆仿函数,例如一些可选值集合的解析器:

-- parse a rectangular block of characters to a map of
-- coordinate to the character, or Nothing for whitespace
parseRectangle :: Parser (Map (Int, Int) (Maybe Char))

data Class = Letter | Digit | Other

classify :: Char -> Class

parseClassifiedRectangle :: Parser (Map (Int, Int) (Maybe Class))
parseClassifiedRectangle = fmap (fmap (fmap classify)) parseRectangle
Run Code Online (Sandbox Code Playgroud)

嵌套fmaps有哪些好方法?通常它不像这里那么清楚,我最终添加fmaps直到代码类型检查.简单的代码最终成为一堆fmap样板,我真正想要表达的是"将此函数提升到适当的深度并将其应用于所包含的类型".

一些想法,到目前为止我都没有发现特别令人满意的想法:

  • 定义fmap2 :: (Functor f, Functor g) => (a -> b) -> g (f a) …

haskell nested functor

6
推荐指数
1
解决办法
135
查看次数

如何查找Haskell名称的包,版本和文档

我的具体问题是这样的:我碰到的名字跑throwTModule.hs一个大项目的Haskell.我想知道是什么throwT.我最终成功地将这一点想象如下:

  1. 为该项目启动ghci
  2. :load Module.hs 其次是 :i throwT throwT :: Monad m => e -> Control.Monad.Trans.Either.EitherT e m r -- Defined in ‘Data.EitherR’
  3. 查询hayooData.EitherR,它指向在封装errors
  4. ghc-pkg list errorserrors-1.4.7
  5. 浏览hackage到该版本的错误包的文档:throwT

有没有更好的方法来做到这一点,从更精确的意义上讲(步骤3不是),而且不那么乏味?

haskell ghci

5
推荐指数
1
解决办法
331
查看次数

与仆人一起处理常规表格帖子(application / x-www-form-urlencoded)

如何使用Servant处理常规表单POST?特别是,给定HTML格式,例如

<form action="/check" method="post">
  Solution:
  <input name="code" type="text">
  <input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

data CheckResult = Correct | Wrong

instance ToHtml CheckResult
    ...

checkCode :: Text -> Handler CheckResult
checkCode code = if code == "secret" then Correct else Wrong
Run Code Online (Sandbox Code Playgroud)

如何将东西串在一起?

forms post haskell servant

5
推荐指数
1
解决办法
618
查看次数

使用 Elm 从 POST 请求下载文件

我的位置是,我有一个/render返回 PDF 文档的 HTTP POST 端点,并且希望向用户呈现一个按钮/链接,该按钮/链接将导致该文档被下载并保存到文件中,而无需离开我的 Elm应用程序。

理想情况下,POST 将接受text/plain具有自定义格式的正文,但我可以重新设计端点以接受multipart/form-dataapplication/x-www-form-urlencoded

我可以按如下方式将原始数据成功下载到 Elm 应用程序,但我不知道如何将文件保存到磁盘。

import Http

render : String -> Http.Request String
render body =
  Http.request
    { method = "POST"
    , headers = []
    , url = "/render"
    , body = Http.stringBody "text/plain" body
    , expect = expectString
    , timeout = Nothing
    , withCredentials = False
    }
Run Code Online (Sandbox Code Playgroud)

post download elm

5
推荐指数
1
解决办法
1154
查看次数

标签 统计

haskell ×4

post ×2

aggregate-functions ×1

cdata ×1

download ×1

elm ×1

forms ×1

functor ×1

ghci ×1

maybe ×1

nested ×1

null ×1

postgresql ×1

servant ×1

sum ×1

tuples ×1

xml ×1